Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz etapowy
Forum PHP.pl > Forum > PHP
xxdrago
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?
Mlodycompany
Możesz te dane przechowywać również w pliku lub w bazie, ale wg mnie najlepszym rozwiązaniem jest chyba sesja
pedro84
Dlaczego np. nie Javascript?
xxdrago
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.
pedro84
Właśnie nic sensowniejszego mi do głowy nie przychodzi: sesje + ewentualnie JS smile.gif
tknapik
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.
greycoffey
Podaj mi jeden argument, dlaczego nie chcesz użyć sesji. Nie rozumiem niechęci wielu ludzi do sesji...
marcio
sesje + serializacja danych, ewentualnie cookie + serializacja, a jak sie boisz koduj to za pomoca base 64 czy byle czym wink.gif
Spawnm
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.
Pilsener
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ć wink.gif
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.