Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz Wielostronicowy
Forum PHP.pl > Forum > Przedszkole
e4you
mam taki kod.

formularza ( podzielony na kroki ) ale cos nie dziala widac 1 krok jak sie da dalej to powinien byc 2 ... i tak analogicznie .


  1. <?php
  2.  
  3.  
  4. echo '<form method=\"post\" action=\"?akcja=add3&lang=pl&option=form&kat=17\">';
  5.  
  6. $id = @$_POST['id'];
  7.  
  8. switch ($id) {
  9. case 0:
  10. case 1:
  11. case 2:
  12. // Pierwszy formularz
  13.  echo '<table width=\"720\" style=\"border-style: solid; border-width: 1\" bgcolor=\"F8FEF5\">';
  14.  echo ' <tr>';
  15.  echo ' <td width=\"465\" bgColor=\"#bfe487\" height=\"24\"><font color=\"#000000\"><b>&nbsp;Format';
  16.  echo '  sprzedaży</b></font></td>';
  17.  echo ' </tr>';
  18.  echo ' <tr> ';
  19.  echo '  <td>';
  20.  echo '  <table >';
  21.  echo '  <tr>';
  22.  echo '  <td class=\"totop\"><input type=\"radio\" CHECKED value=\"auction\" name=\"auction_type\"></td>';
  23.  echo '  <td class=\"totop\"><span class=\"bold10\"><b>Aukcja</b></span> (z';
  24.  echo '  licytacją)&nbsp;<br>';
  25.  echo '  <span class=\"normal10\">Sprzedaj przedmiot temu, kto zaoferuje więcej';
  26.  echo '  (opcjonalnie do licytacji możesz również dodać cenę Kup Teraz).</span></td>';
  27.  echo '  </tr>';
  28.  echo '  <tr>';
  29.  echo '  <td class=\"totop\"><input type=\"radio\" value=\"buy_now\" name=\"auction_type\"></td>';
  30.  echo '  <td class=\"totop\"><span class=\"bold10\">Tylko</span> <span class=\"textBN\"><b>Kup';
  31.  echo '  Teraz!</b></span> (bez licytacji)&nbsp;<br>';
  32.  echo '  <span class=\"normal10\">Sprzedaj przedmiot po stałej cenie.</span></td>';
  33.  echo '  </tr>';
  34.  echo '  <tr>';
  35.  echo '  <td class=\"totop\"><input type=\"radio\" value=\"buy_now\" name=\"auction_type\"></td>';
  36.  echo '  <td class=\"totop\"><span class=\"bold10\"><b>Aukcja</b></span> (z <b>Kup';
  37.  echo '  Teraz!</b>)&nbsp;<br>';
  38.  echo '  <span class=\"normal10\">Sprzedaj przedmiot po stałej cenie. lub kto';
  39.  echo '  więcej zaoferuje.</span></td>';
  40.  echo '  </tr>';
  41.  echo '  </table>';
  42.  echo '  </tr>';
  43.  echo ' </table>';
  44. break;
  45.  
  46. case 3:
  47. // Drugi formularz
  48. echo 'Adres: ';
  49. echo '<input type=\"text\" name=\"address\" /><br />';
  50. echo 'Telefon: <input type=\"text\" name=\"phone\" />';
  51. echo '<input type=\"hidden\" name=\"id\" value=\"3\" />';
  52. // Zapisujemy dane
  53. unset($_POST['id']);
  54. $_SESSION['form1'] = $_POST;
  55. break;
  56.  
  57. case 4:
  58. // Podsumowanie
  59. unset($_POST['id']);
  60. print_r(array_merge($_SESSION['form1'], $_POST));
  61. }
  62.  
  63. if ($id < 3)
  64.  
  65. echo '<br /><center><INPUT class=\"button\" TYPE=\"BUTTON\" ONCLICK=\"javascript:history.go(-1)\" VALUE=\"Cofnij\">&nbsp;&nbsp;<input type=\"submit\" value=\"Dalej\" class=\"button\"/></form>';
  66.  
  67. ?>
Misiek
Nigdzie w kodzie nie ma nic o id jaki ma być przekazany do drugiej podstrony.
sf
lepsza konstrukcja wydaje mi sie taka :

  1. <?php
  2. switch {
  3. /* zaleznie od kroku wykonaj zadanie odpowiednie
  4.  sprawdzaj poprawnosc wpisanych danych, jesli bledne jest cos, wpisz do zmiennej
  5. $err blad */
  6. }
  7.  
  8. /* jesli wystapil blad, czyli zmienna jakas tam np. $err ma wartosc, zmniejsz kro
  9.  oraz mozesz wyswietlic ten komunikat */
  10. if(isset($err) { 
  11. echo $err; 
  12. --$krok; 
  13. }
  14.  
  15. switch {
  16. /* wyswietl formularz zaleznie od kroku, jesli byl blad to wyswietli ten, w ktory
  17.  byl blad bo krok sie zmniejszy */
  18. }
  19.  
  20. // no i lepiej zamiast echo zrobic :
  21.  
  22. ?>
  23.  
  24. <!-- <kod html> <kod html> -->
  25.  
  26. <?php
  27. // dalsza czesc php
  28. ?>


a $id przekazywalbym jako GET, czyli nie jedno globalne form tylko w kazdym case pisze form i w action krok=0, 1, 2 zaleznie od case smile.gif
e4you
  1. <?php
  2.  
  3.  
  4.   echo '<form method=\"post\" action=\"?akcja=add3&lang=pl&option=form&kat=17\">';
  5.  
  6.   $id = @$_POST['id'];
  7.  
  8.   switch ($id) {
  9.     case 0:
  10.     case 1:
  11.    echo 'Adres: ';
  12.       echo '<input type=\"text\" name=\"address\" /><br />';
  13.       echo 'Telefon: <input type=\"text\" name=\"phone\" />';
  14.       echo '<input type=\"hidden\" name=\"id\" value=\"3\" />';
  15.  
  16.       break;
  17.  
  18.     case 3:
  19.       // Drugi formularz
  20.       echo 'Adres: ';
  21.       echo '<input type=\"text\" name=\"address\" /><br />';
  22.       echo 'Telefon: <input type=\"text\" name=\"phone\" />';
  23.       echo '<input type=\"hidden\" name=\"id\" value=\"3\" />';
  24.       // Zapisujemy dane
  25.       unset($_POST['id']);
  26.       $_SESSION['form1'] = $_POST;
  27.       break;
  28.  
  29.     case 4:
  30.       // Podsumowanie
  31.       unset($_POST['id']);
  32.       print_r(array_merge($_SESSION['form1'], $_POST));
  33.       session_unset();
  34.       session_destroy();
  35.   }
  36.  
  37.   if ($id < 3)
  38.  
  39.     echo '<br /><center><INPUT class=\"button\" TYPE=\"BUTTON\" ONCLICK=\"javascript:history.go(-1)\" VALUE=\"Cofnij\">&nbsp;&nbsp;<input type=\"submit\" value=\"Dalej\" class=\"button\"/></form>';
  40.  
  41. ?>


tak dziala


EDIT JUZ DZIALA
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.