![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
Mam nastepujacy problem, zrobilem formularz i za pomoca get pobiera link do kolejnego kroku, a kolejne kroki sa w case'ach :/
wiec nie bardzo walidowac w kolejnym kroku bo wyswietla sie tam juz formularz nastepny Chcialbym zrobic tak ze jak ktos nacisnie przycisk "przejdz dalej" to najpierw sprawdzi poprawnosc jego uzupelnienia a nastepnie przejdzie ewentualnie do kolejnej strony, czy ktos wie jak to rozwiazac?? Wiem ze rozwiazaniem byloby zrobienie tego w jednym pliku bo moznaby nie przeladowywac strony tylko efekty walidacji pokazywalyby sie na formularzu ale chcialem zademonstrowac mechanizm dzialania sesji bo to strona na zaliczenie :/ DZieki za wszelkie wskazowki lub rozwiazania tego problemu Ten post edytował lnn 20.01.2010, 00:08:46 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 358 Pomógł: 78 Dołączył: 4.11.2008 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
jesli dane z post ze strony nr 1 sa ok to na stronie nr 2 zapisujesz do sesji i przekierowujesz na strone nr 3 gdzie jest nastepny formularz.
jesli dane z post ze strony nr 1 nie sa ok to na stronie nr 2 zapisujesz do sesji, generujesz komunikat bledu i przekierowujesz na strone nr 1, gdzie wyswietlasz blad(tez moze byc z sesji) a do pol formularza wstawiasz dane z sesji(zeby ci nie przepadly) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
czyli ze jak?
wysylam formularz 1 -> odbieram go na drugiej stronie -> sprawdzam -> wyswietlam ewentualne bledy + zapsuje to co odebrano do sesji.. -> generuje link do poprzedniej strony a jak zablokowac zeby sie nie wyswietlil formularz 2 dopoki dane nie beda ok??
to cos mi sie zdaje ze lepiej byloby juz wywolac wszystko na jednej stronie i wyswietlac ewentualne bledy na danej stronie przy polu.. :/ moze ktos wie jak to JavaScript zrealizowac na poszczegolnych podstronach? Ten post edytował lnn 20.01.2010, 00:09:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 7.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A czy ta walidacja musi być koniecznie w phpie? Dużo lepszym rozwiązaniem byłoby walidować przez JavaScript, a potem ewentualnie go przesyłać:
Po prostu nie obciążasz niepotrzebnie serwera. Ten post edytował bastard13 19.01.2010, 21:28:54 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
wlasnie chcialem uzyc JS ale nie bardzo go znam, ale znalazlem gotowe rozwiazanie
http://republika.onet.pl/2563,34,1,,fabryka.html
z tym ze atrybut
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Po co JS? To bez sensu - poczytaj o formularza wieloetapowych, dane gromadzisz dodając do formularza pola typu:
Możesz przeprowadzić walidację na dowolnym etapie, bo za każdym wysłaniem formularza masz kompletną tablicę POST. Jest to też ważne dlatego, że user może zechcieć sie cofnać a w wypadku błędu nie chce wypełniać formularza od nowa, najczęściej porzuca wtedy taką stronę psiocząc na amatorów, którzy ją robili. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 361 Pomógł: 11 Dołączył: 17.12.2008 Skąd: LU Ostrzeżenie: (0%) ![]() ![]() |
Po co JS? To bez sensu - poczytaj o formularza wieloetapowych, dane gromadzisz dodając do formularza pola typu:[/url] Możesz przeprowadzić walidację na dowolnym etapie, bo za każdym wysłaniem formularza masz kompletną tablicę POST. Jest to też ważne dlatego, że user może zechcieć sie cofnać a w wypadku błędu nie chce wypełniać formularza od nowa, najczęściej porzuca wtedy taką stronę psiocząc na amatorów, którzy ją robili. akurat o formularzach wieloetapowych nic nie znalazlem, gromadzilem dane poprzez serialize($_POST) i to wczytuje do sesji, tylko szkopuł w tym, że nie wiem jak ktoś zrobi krok wstecz wczytać te dane do formularza spowrotem :/ zeby nie musial 2 raz klepać. w JS dlatego, żeby nie obciazac serwera, poza tym moge sprawdzic rozne rzeczy takie jak w PHP. Praca jest edukacyjnie robiona i musze ja skonczyc zeby oddac takze jak narazie ma tylko dzialac w miare ok. Plan byl taki, że jesli ktos cos doda to pozniej w panelu moze sobie edytowac to jeszcze lub ew. usunac wpis. Ten post edytował lnn 20.01.2010, 18:49:25 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Krok wstecz robi się tak:
1. Ustawiasz nagłówki tak, by przeglądarka zapamiętywała formularz lub 2. Robisz to ciastkiem (w końcu to ma być jedynie lepsza funkcjonalność) Serializacja ma sens i owszem, by zapisać ciacho a sesji nie musisz używać wcale. Przy edycji po prostu wczytujesz aktualny stan bazy i porównujesz to z POST, które nadpisuje stan bazy (są funkcje tablicowe do tego). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 16:45 |