Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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 winksmiley.jpg
Go to the top of the page
+Quote Post
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


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
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 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
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. haha.gif

Ten post edytował fifi209 11.05.2009, 17:27:18


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 01:35