Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rejestracja kilka kroków
KoPcIu
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 23.10.2008

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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. ?>
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


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).

Ten post edytował Apocalyptiq 9.05.2009, 11:15:41
Go to the top of the page
+Quote Post
KoPcIu
post
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 23.10.2008

Ostrzeżenie: (0%)
-----


Kshyhoo, wykorzystałem Twój kod i działa świetnie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Apocalyptiq, Tak jest odświeżany za każdym krokiem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) lecz dane są zapisywane jedynie z ostatniego kroku (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) reszta to regulamin informacje i odpowiedzi na pytania (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam i dziękuję za odpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
okitoki
post
Post #5





Grupa: Zarejestrowani
Postów: 214
Pomógł: 18
Dołączył: 25.04.2009

Ostrzeżenie: (20%)
X----


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();    
    }
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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. (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)

Ten post edytował fifi209 11.05.2009, 17:27:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:43