Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] formularze
Forum PHP.pl > Forum > PHP
murdock
czesc all . Mamy sobie formularz i na dole jest przycisk "dalej". Jak zrobić coś takiego ze po naciśnięciu przycisku "dalej" pojawi sie nam nowy formularz na tej samej stronie questionmark.gif
kriqs

a tak na serio to co dalej i bez przeladowania strony questionmark.gif to moze js i warstwy questionmark.gif smile.gif
franki01
bym tez przyczepil sie do js z divami ;]
devnul
to chyba do przedszkole się nadaje (albo po stronie przęglądarki - bo nie jestem przekonany czy o rozwiązanie Server Side Ci chodzi)

  1. <?php
  2. if (@$_POST['button_dalej']=='Dalej'){
  3.  echo "formularz 2";
  4. } else {
  5.  echo "formularz 1";
  6. }
  7. ?>
murdock
chcialbym uzyc do tego sesji. Np. w jednym formularzu wpisuje imie i nazwisko ,naciskam "dalej" ,pojawia sie drugi formularz w ktorym wybieram wojewodztwo i na koncu zbieram dane z dwoch formularzy i dodaje do bazy danych. Chozi mi wlasnie o rozwiazanie takiego problemu .
franki01
Na gorze musi byc

  1. <?php
  2. ?>




Po pierwszym wysłaniu formularza:

  1. <?php
  2. $_SESSION['POST_DATA'] = $_POST;
  3. ?>



Po kazdym kolejnym:

  1. <?php
  2. $_SESSION['POST_DATA'] += $_POST;
  3. ?>

albo jak powyzsze nie zadziala
  1. <?php
  2. $_SESSION['POST_DATA'] = array_merge($_SESSION['POST_DATA'], $_POST);
  3. ?>


na koncu w $_SESSION['POST_DATA'] sa dane ze wszystkich formularzy.
devnul
@franki01: słabe to rozwiązanie, bo ufasz ślepo temu co user wyśle (i można łatwo podmienić jakąś istotną zmienną w systemie) ale zasada ogólna przedstawiona przez ciebie jest dobra: najpierw w każdym pliku start sesji a następnie pisanie do niej (po poprzedniej weryfikacji danych) i wyświetlenie kolejnego formularza a na końcu gdy wszystko ok zapis do bazy
franki01
Mi tylko chodzi o schemat. Wiadomo ze nie dalbym takiego gotowca bez zadnego sprawdzania danych biggrin.gif
murdock
Mam cos takiego :

Kod
<?php
echo '<form action="index.php?f=true&pf=true&newfirma=true" id="formularz" enctype="multipart/form-data" method="post" name="formularz1">
  <table bgcolor="#32CD32"  cellpadding="4" cellspacing="1" border="1">
  <tr>
  <td id="tabnaglowek" align="center" colspan="2"><b>Dodaj Firme:</b></td>
  </tr>
  <tr>
  <td>Nazwa opisowa:  </td>
  <td><input  name="nazwa_opisowa" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Nazwa firmy: </td>
  <td><input  name="naza_firmy" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Forma prawna  </td>
  <td><input  name="forma_prawna" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Adres siedziby: </td>
  <td><input  name="adres_siedziby" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Adres korespondencyjny:</td>
  <td><input  name="adres_korespondencyjny" maxlength="255" size="5" type="text" /></td>
  </tr>
  <tr>
  <td>Telefon:</td>
  <td><input  name="telefon" maxlength="255" size="5" type="text" /></td>
  </tr>
  <tr>
  <td>Teefon komorkowy:</td>
  <td><input  name="telefon_komorkowy" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Fax</td>
  <td><input  name="fax" maxlength="255" size="5" type="text" /></td>
  </tr>
  <tr>
  <td>Email:</td>
  <td><input  name="email" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>www:</td>
  <td><input  name="www" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Nip:</td>
  <td><input  name="nip" maxlength="255" size="30" type="text" /></td>
  </tr>
  <tr>
  <td>Regon:</td>
  <td><input  name="regon" maxlength="255" size="30" type="text" /></td>
  </tr>                              
  <tr><td align="center" colspan="2"><a href="index.php?dodaj">Następna strona</a></td></tr>
  </table>
  </form>';
?>


i gdzie mam ta zmienna sesyjna wsatwic o ktorej jest mowa zeby mozna dodac kolejny formularz pod przycisk "next strona " questionmark.gif?
franki01
  1. <?php
  2.  
  3. if($_POST['send'] == "Koniec") {
  4. $_SESSION['FORM_DATA'] = array_merge($_POST,$_SESSION['FORM_DATA']);
  5.  
  6. // tutaj jest koniec formularza, w $_SESSION['FORM_DATA'] trzymane sa dane z obu formularzy
  7. // nazwy pol nie powinny nazywac sie tak samo w jednym i w drugim formularzu
  8. }
  9. else if($_POST['send'] == "Następna strona") {
  10. // tutaj mozna dac jeszcze jakies instrukcje sprawdzajace poprawnosc danych itp.
  11. $_SESSION['FORM_DATA'] = $_POST;
  12.  
  13. echo 'Drugi formularz
  14. ......
  15. <input type="submit" name="send" value="Koniec" />';
  16. }
  17. else {
  18. echo '<form action="index.php?f=true&pf=true&newfirma=true" id="formularz" enctype="multipart/form-data" method="post" name="formularz1">
  19. <table bgcolor="#32CD32" cellpadding="4" cellspacing="1" border="1">
  20. <tr>
  21. <td id="tabnaglowek" align="center" colspan="2"><b>Dodaj Firme:</b></td>
  22. </tr>
  23. <tr>
  24. <td>Nazwa opisowa: </td>
  25. <td><input name="nazwa_opisowa" maxlength="255" size="30" type="text" /></td>
  26. </tr>
  27. <tr>
  28. <td>Nazwa firmy: </td>
  29. <td><input name="naza_firmy" maxlength="255" size="30" type="text" /></td>
  30. </tr>
  31. <tr>
  32. <td>Forma prawna </td>
  33. <td><input name="forma_prawna" maxlength="255" size="30" type="text" /></td>
  34. </tr>
  35. <tr>
  36. <td>Adres siedziby: </td>
  37. <td><input name="adres_siedziby" maxlength="255" size="30" type="text" /></td>
  38. </tr>
  39. <tr>
  40. <td>Adres korespondencyjny:</td>
  41. <td><input name="adres_korespondencyjny" maxlength="255" size="5" type="text" /></td>
  42. </tr>
  43. <tr>
  44. <td>Telefon:</td>
  45. <td><input name="telefon" maxlength="255" size="5" type="text" /></td>
  46. </tr>
  47. <tr>
  48. <td>Teefon komorkowy:</td>
  49. <td><input name="telefon_komorkowy" maxlength="255" size="30" type="text" /></td>
  50. </tr>
  51. <tr>
  52. <td>Fax</td>
  53. <td><input name="fax" maxlength="255" size="5" type="text" /></td>
  54. </tr>
  55. <tr>
  56. <td>Email:</td>
  57. <td><input name="email" maxlength="255" size="30" type="text" /></td>
  58. </tr>
  59. <tr>
  60. <td>www:</td>
  61. <td><input name="www" maxlength="255" size="30" type="text" /></td>
  62. </tr>
  63. <tr>
  64. <td>Nip:</td>
  65. <td><input name="nip" maxlength="255" size="30" type="text" /></td>
  66. </tr>
  67. <tr>
  68. <td>Regon:</td>
  69. <td><input name="regon" maxlength="255" size="30" type="text" /></td>
  70. </tr>  
  71. <tr><td align="center" colspan="2"><input type="submit" name="send" value="Następna strona" /></td></tr>
  72. </table>
  73. </form>';
  74. }
  75. ?>
murdock
dziekuje franki01 dziala wysmienicie , mozna zamknac temat
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.