Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] checkbox w sesji
lukash82
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 2
Dołączył: 17.03.2006
Skąd: Siemianowice

Ostrzeżenie: (0%)
-----


Witam,

Mam problem z przesyłaniem checkbox-a w sesji. Może na przykładzie będzie łatwiej to wytłumaczyć:

Jest sobie jakiś tam formularz:

  1. <input name='produkty[]' type='checkbox' value='1' />
  2. <input name='produkty[]' type='checkbox' value='2' />
  3. <input name='produkty[]' type='checkbox' value='3' />
  4. </form>


i kilka innych pól ale upraszczam to do tych checkboxów

Ok, wysyłam to dalej, gdzie następuje weryfikacja. I wtedy jeśli coś jest nie tak to zmienne $_POST są zapisywane do $_SESSION i wracamy do formularza powyżej.

  1. $_SESSION['produkty'] = $_POST['produkty'];


Pytanie, jak zaznaczyć te checkbox-y, które zostały we wcześniejszym kroku zaznaczone przez użytkownika, aby nie musiał ich znów od nowa zaznaczać?

Próbuję tak:

  1. if($_SESSION['produkty'][$row['id']]==$row['id']) echo " checked='checked'";


Ale to nie działa. Pewnie dlatego, że $row['id'] leci od 1, a tablica zapisana w sesji od 0. Próbowałem już na różne sposoby +-1 ale chyba coś źle kombinuję. No chyba, że jest tu jakiś błąd albo wogóle sama koncepcja jest błędna? Jeśli ktoś może coś podpowiedzieć to będę dźwięczny. Pozdrawiam, Ł.

PS. Ten powyższy formularz generuje się w pętli na podstawie danych z bazy. Tutaj jest tylko jego uproszczona wersja.

Ten post edytował lukash82 16.12.2014, 18:46:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
fastlone
post
Post #2





Grupa: Zarejestrowani
Postów: 95
Pomógł: 15
Dołączył: 3.06.2010

Ostrzeżenie: (0%)
-----


Zamiast nazywać posta produkty[], po czym dawac wartość liczbową jako przesyłaną wartość, zrobiłbym jakieś value="yes", po czym sprawdził warunkiem
  1. if($_SESSION['produkty'][$row['id']]=="yes" echo " checked='checked'";

Tak w ogóle, po co zapisujesz dane produkty do sesji, skoro przechodząc do następnej podstrony te posty się przesyłają? Zamiast tego używaj <input type="hidden" name=".." value=".." />.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:44