![]() |
![]() |
![]()
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?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Możesz te dane przechowywać również w pliku lub w bazie, ale wg mnie najlepszym rozwiązaniem jest chyba sesja
|
|
|
![]()
Post
#3
|
|
Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego np. nie Javascript?
|
|
|
![]()
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.
|
|
|
![]()
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)
|
|
|
-tknapik- |
![]()
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.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) ![]() ![]() |
Podaj mi jeden argument, dlaczego nie chcesz użyć sesji. Nie rozumiem niechęci wielu ludzi do sesji...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
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)
|
|
|
![]()
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.
|
|
|
![]()
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) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 07:49 |