Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] zapisanie checkbxó do sesji
Forum PHP.pl > Forum > Po stronie przeglądarki
grzegorz_g
witam!

mam tego typu problem, muszę zapisać zaznaczone checkboxy w ten sposób by przy stronicowaniu zachowywało mi ich zaznaczenie.
Jak się do tego zabrać sad.gif

pozdrawiam
grzegorz_g
być może skorzystam z Twojego rozwiązania jednak ten formularz mam rozbudowany

są to elementy sklepu z bazy danych produktów , na stronie 20 elementów (chceckboxów) i nie wiem jak zastosować tto Twoje rozwiązanie



nospor
Czy pól w formularzu masz 2, 5 czy 20 to nic nie zmienia. NIezależnie od liczby, wszystko robisz dokładnie tak samo.
grzegorz_g

mam takie pole w formularzu

  1.  
  2. <input type='checkbox' name='all".$row['id']."' value='".$row['id']."' /> Wystaw na allegro
  3.  


gdzie $row['id] jest numerem id produktu
ja nie znam na wstępie by zdefiniować funkcję jakie będą nazwy pól



nospor
Bo źle nadajesz NAME. NAME ma nie zawierać ID produktu, od tego masz VALUE.
Name ma mieć nazwę tablicową: all[] i już. wówczas formularz wysyła pod indexem all tylko zaznaczone checkboxy.
grzegorz_g
to dlaczego u ciebie kolejne pola mają inne nazwy?
tym się sugerowałem
nospor
No bo u mnie to są pola o różnych nazwach. U mnie były pola tekstowe u ciebie są checkboxy.
W przypadku powiązanych ze sobą checkboxów, ustala się nazwę tablicową - taki jest standardowy schemat działania dla formularza z checkboxami.
grzegorz_g
to co nie działa znajduję się tutaj:

http://scoressite.nazwa.pl/test/sklepik/admin/produkty.php

i zmieniłem te funkcje w ten spsób:

  1.  
  2. if (!empty($_POST['oursubmit'])){
  3. //gdy wysłano formularz (kliknięto przycisk "oursubmit")
  4. //zapisz jego stan w sesji
  5.  
  6. $_SESSION['form'] = array(
  7. 'allegro' => $_POST['allegro']
  8. );
  9. }
  10.  
  11. //niezależnie, czy wysłano formularz, czy nie,
  12. //pobierz jego stan z sesji
  13. $formData = array(
  14. 'allegro' => !isset($_SESSION['form']) ? null : $_SESSION['form']['allegro'],
  15.  
  16. );
  17.  



i teraz po odświeżeniu działa ale jak przejdę na druga stronę to ustawienia checkboxów się tracą sad.gif

aha jedno pytanie mi się ciśnie na usta jak serwer wie jaki checkbox został zaznaczony
nospor
a sesje startujesz? session_start()?

Cytat
aha jedno pytanie mi się ciśnie na usta jak serwer wie jaki checkbox został zaznaczony
Już ci mówiłem. Pod indeksem "allegro" masz tablicę zaznaczonych checkboxów. Staraj się czytać uważniej.

ps: pisałem również, że checkbox ma miec VALUE jako ID twojego rekordu. A ciebie checkboxy nie ma ją żadnej VALUE

ps2: podany przeze mnie art dotyczył formularzy. Czyli, że pola były zapamiętywane po wysłaniu formularza. U ciebie raczej średnio widzę, byś jakikolwiek formularz wysyłał.
grzegorz_g
nadałem checkboxom value

ale wciąż nie ma nic w sesji:

  1. print_r($formData['allegro']);


to mam puste,

session_start() na początku dodane
nospor
Przeczytaj mój ps2.
Jeśli nie wysylasz forma, a domyslam się że nie wysyłasz, to ta metoda nie zadziała.
Musisz więc użyć AJAX, by po kliknięciu w checkbox, zapisywać na serwerze w sesji kliknięty checkbox.
grzegorz_g
a masz jakieś rozwiązanie z tym ajaxem bo u mnie z wiedzą na ten temat cięzko

a może by ten mój problem zrobić na cookies?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.