Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz etapowy
xxdrago
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


Witam, jak najlepiej stworzyć formularz podzielony na kilka kroków(etapów). Myślałem, dane wysłane przez użytkownika trzymać w sesji ale jakoś mi się to nie podoba. Macie jakieś ciekawe sposoby?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Mlodycompany
post
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Możesz te dane przechowywać również w pliku lub w bazie, ale wg mnie najlepszym rozwiązaniem jest chyba sesja
Go to the top of the page
+Quote Post
pedro84
post
Post #3





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Dlaczego np. nie Javascript?
Go to the top of the page
+Quote Post
xxdrago
post
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 42
Dołączył: 27.07.2010
Skąd: Jaworzno

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


pedro84, nie zabardzo podoba mi się ta opcja, myślałem nad nią ale wolałbym, walidować dane odrazu czyli: krok 1 walidacja przez serwer krok 2 walidacja itd... A nie potem na końcu wyświetlać w czym jest błąd (można by było walidować w js odrazu hmm no ale? Jakoś odpada). Jeżeli, nic nie wymyślę ciekawego (albo czegoś nie zaproponujecie) to prawdopobnie wykorzystam te sesje lub js.
Go to the top of the page
+Quote Post
pedro84
post
Post #5





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Właśnie nic sensowniejszego mi do głowy nie przychodzi: sesje + ewentualnie JS (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-tknapik-
post
Post #6





Goście







Równie dobrze możesz w następnym etapie przesyłać dane przez ukryte pole tekstowe (<input type="hidden" value="{$_POST['test']}" name="test" />). Jednak musisz pamiętać o walidacji w następnym etapie, również tego poprzedniego, ponieważ łatwo edytować kod po stronie klienta.
Go to the top of the page
+Quote Post
greycoffey
post
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Podaj mi jeden argument, dlaczego nie chcesz użyć sesji. Nie rozumiem niechęci wielu ludzi do sesji...
Go to the top of the page
+Quote Post
marcio
post
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


sesje + serializacja danych, ewentualnie cookie + serializacja, a jak sie boisz koduj to za pomoca base 64 czy byle czym (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #9





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Przy wieloetapowych formach dane z popdzedniego formularza powinieneś trzymać w sesji. Cookie oraz ukryte inputy user może modyfikować, a to oznacza że po walidacji pierwszego etapu dla pewności będziesz musiał wykonać walidacje od nowa w koncowym aby mieć pewność że nie zaszły zmiany.
Go to the top of the page
+Quote Post
Pilsener
post
Post #10





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Nie ma z tym problemu bo walidator pisze się raz to raz - a dwa to tak naprawdę cały czas jeden formularz, lepiej ukrywać/usuwać jego elementy niż tworzyć np. 10 formularzy, rozbijanie to na poszczególne formularze nie ma zazwyczaj sensu, to formularz obsługujemy na raty a nie odwrotnie, wygodniej wszystko jest mieć w jednym miejscu (no chyba, że to jakiś formularz gigant albo wręcz całe drzewo zależności), plus jeszcze taki że to w samym formularzu możemy określić, w którym etapie jakie pola są dostępne a jakie ukryte, łatwiej też ustalać zależności pomiędzy formatkami. A sesję/ciastka zaprzęgamy jeśli chcemy stworzyć dodatkową nawigację pomiędzy etapami - oczywiście jeśli jest taka potrzeba.

Oczywiście dobrze mieć jakiś zgrabny framework, inaczej można się napocić (IMG:style_emoticons/default/wink.gif)
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: 23.08.2025 - 07:49