xxdrago
21.04.2012, 22:04:49
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
21.04.2012, 22:13:49
Możesz te dane przechowywać również w pliku lub w bazie, ale wg mnie najlepszym rozwiązaniem jest chyba sesja
pedro84
21.04.2012, 22:21:49
Dlaczego np. nie Javascript?
xxdrago
21.04.2012, 22:30:23
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
21.04.2012, 22:32:31
Właśnie nic sensowniejszego mi do głowy nie przychodzi: sesje + ewentualnie JS
tknapik
22.04.2012, 02:24:20
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
22.04.2012, 08:42:01
Podaj mi jeden argument, dlaczego nie chcesz użyć sesji. Nie rozumiem niechęci wielu ludzi do sesji...
marcio
22.04.2012, 20:02:12
sesje + serializacja danych, ewentualnie cookie + serializacja, a jak sie boisz koduj to za pomoca base 64 czy byle czym
Spawnm
22.04.2012, 20:48:05
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
22.04.2012, 21:53:10
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ć
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.