Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Rejestracja kilka kroków
Forum PHP.pl > Forum > PHP
KoPcIu
Witam. Tworzę rejestracje która posiada 4 kroki chodzi mi o to aby nie można było przejść z pierwszego kroku od razu do 4 aby wypełnić dane formularza... Jedyne co mi przyszło do głowy to sesje lecz wszystko mi się miesza podczas pisania tego skryptu.

Czy ktoś ma jakiś inny pomysł na tą rejestrację?

Pozdrawiam KoPcIu winksmiley.jpg
Kshyhoo
Hi. Ostatnio borykałem się z podobnym problemem. Masz tu coś na ząb:
  1. <?php
  2. if (isset($_POST['krok']) && $_POST['krok'] == "1") {
  3.  
  4.  // krok nr 1
  5.  
  6.  } elseif (isset($_POST['krok']) && $_POST['krok'] == "2") {
  7.  
  8.  // krok 2
  9.  
  10.  } elseif (isset($_POST['krok']) && $_POST['krok'] == "3") {
  11.    
  12.  // krok 3
  13.    
  14.  } elseif (isset($_POST['krok']) && $_POST['krok'] == "4") {  
  15.    
  16.  // krok 4
  17.  } else {
  18.  
  19.  // strona powitalna która pojawi się przy załadowaniu pliku
  20.    
  21.  }
  22. ?>

I do formularza na każdym etapie dajesz:
  1. <?php
  2. echo "<input type='hidden' name='krok' value='1'>\n";
  3. ?>
Apocalyptiq
Jeżeli ten formularz za każdym krokiem jest odświeżany (wypełniający go klika dalej, strona sie odświeża a to co wypełnił gdzieś zapisało się u Ciebie w bazie), no to myślę że najlepsze wyjście to sesja właśnie, zapisujesz sobie np. w $_SESSION['sign_step'] krok, na którym jest wypełniający formularz, np. 2, i wtedy jeżeli wejdzie na formularz, wyświetla mu się właśnie ten 2 krok.

Chociaż jeżeli to ma nie być aż tak bardzo pilnowane, kto do którego kroku może wejść, można oprzeć na post (ale wtedy istniałaby możliwość obejścia tego i przejścia do np. 2 kroku, poprzez preparacje formularza który odsyłałby do Twojej strony ze zmienną $_POST['sign_step'] = 2).
KoPcIu
Kshyhoo, wykorzystałem Twój kod i działa świetnie winksmiley.jpg

Apocalyptiq, Tak jest odświeżany za każdym krokiem winksmiley.jpg lecz dane są zapisywane jedynie z ostatniego kroku winksmiley.jpg reszta to regulamin informacje i odpowiedzi na pytania winksmiley.jpg

Pozdrawiam i dziękuję za odpowiedzi winksmiley.jpg
okitoki
nie ładniej wygląda switch

Kod
    switch($_GET['krok'])
    {
        case '1': krok1(); break;
        case '2': krok2(); break;
        case '3': krok3(); break;
        case '4': krok4(); break;
        default: krokdomyslny();    
    }
Fifi209
Nie lepiej tak ajax'a użyć?

Ja bym zrobił tak, diva + onload

Na początku wysyłasz puste żądanie i skrypt odczytuje z php pierwszy krok i pakuje do diva.
Potem przy kolejnym kroku przesyłasz żądanie i w php sprawdzasz, który to był krok.

No itd. ;d

  1. <?php
  2. echo "<input type='hidden' name='krok' value='1'>\n";
  3. ?>


Firebug i idę do kroku 8. haha.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.