Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][PHP]Długi formularz, na kilkustronicowy.
Forum PHP.pl > Forum > Przedszkole
husky999
Witam, to mój pierwszy post.
Na bierząco korzystam z forum, ale dzisiaj nie znalazłem rozwiązania nurtującego mnie problemu. Otóż problem jest następujący:

Mam taki bardzo długi formularz, którego ja nie tworzyłem. Musze z niego zrobić trzystronicowy. Nie mam pomysłu jak się za to zabrać... myślałem nad rozwiązaniem js, ale nei wiem, czy nie popsuje to modelu wysyłania. również rozwarzałem stworzenie trzech zakładek, ktore po kliknieciu robia sie visible, a pozostałe dwie robi hidden, ale tez nei wiem jakie to będzie miało odzwierciedlenie przy POST. Poniżej formularz:

  1. <div id="post"><div class="post_text" style="margin-top:0em; padding-top:0em;">
  2. <table align="center">
  3. <form action="" name="zglos" method="post">
  4. <tr>
  5. <td><h3>Informacje o obiekcie/projekcie:</h3></td>
  6. </tr>
  7. <tr>
  8. <td><input type="radio" name="kto" value="projektant" />Projektant<input type="radio" name="kto" value="zespol" />Zespół projektowy<input type="radio" name="kto" value="producent" />Producent</td>
  9. </tr>
  10. <tr>
  11. <td><br />Nazwa zgłaszanego obiektu/projektu</td>
  12. </tr>
  13. <tr>
  14. <td><input type="text" name="nazwa" /></td>
  15. </tr>
  16. <tr>
  17. <td>Krótka charakterystyka obiektu/projektu (funkcje, rozwiązania techniczne, jakie problemy rozwiązuje):</td>
  18. </tr>
  19. <tr>
  20. <td><textarea rows="5" cols="40" name="charakterystyka"></textarea></td>
  21. </tr>
  22. <tr>
  23. <td>Materiały, z jakich obiekt/projekt jest wykonany/przewidziany: </td>
  24. </tr>
  25. <tr>
  26. <td><input type="text" name="materialy" /></td>
  27. </tr>
  28. <tr>
  29. <td>Rok powstania:</td>
  30. </tr>
  31. <tr>
  32. <td><input type="text" name="rok" /></td>
  33. </tr>
  34. <tr>
  35. <td>Wymiary obiektu/projektu:</td>
  36. </tr>
  37. <tr>
  38. <td><input type="text" name="wymiary" /></td>
  39. </tr>
  40. <tr>
  41. <td>Rodzaj opakowania do transportu</td>
  42. </tr>
  43. <tr>
  44. <td><textarea rows="5" cols="40" name="opakowanie"></textarea></td>
  45. </tr>
  46. <tr>
  47. <td><h3>Informacje o projektancie/zespole:</h3></td>
  48. </tr>
  49. <tr>
  50. <td>Kierownik zespołu:</td>
  51. </tr>
  52. <tr>
  53. <td><br />Imię:</td>
  54. </tr>
  55. <tr>
  56. <td><input type="text" name="imie" /></td>
  57. </tr>
  58. <tr>
  59. <td>
  60. Nazwisko:
  61. </td>
  62. </tr>
  63. <tr>
  64. <td>
  65. <input type="text" name="nazwisko" />
  66. </td>
  67. </tr>
  68. <tr>
  69. <td>Skład zespołu:</td>
  70. </tr>
  71. <tr>
  72. <td><textarea rows="5" cols="40" name="opakowanie"></textarea></td>
  73. </tr>
  74. <tr>
  75. <td><h3>Informacje o zgłaszającym obiekt/projekt:</h3></td>
  76. </tr>
  77. <tr>
  78. <td>Imię:</td>
  79. </tr>
  80. <tr>
  81. <td>
  82. <input type="text" name="imie_dwa" /></td>
  83. </tr>
  84. <tr>
  85. <td>
  86. Nazwisko:
  87. </td>
  88. </tr>
  89. <tr>
  90. <td>
  91. <input type="text" name="nazwisko_dwa" />
  92. </td>
  93. </tr>
  94. <tr>
  95. <td><br />Adres:</td>
  96. </tr>
  97. <tr>
  98. <td><br />Ulica, numer:</td>
  99. </tr>
  100. <tr>
  101. <td><input type="text" name="adres" /></td>
  102. </tr>
  103. <tr>
  104. <td>Kod pocztowy:</td>
  105. </tr>
  106. <tr>
  107. <td><input type="text" name="kod" /></td>
  108. </tr>
  109. <tr>
  110. <td>Miejscowość:</td>
  111. </tr>
  112. <tr>
  113. <td><input type="text" name="miejscowosc" /></td>
  114. </tr>
  115. <tr>
  116. <td>Kraj:</td>
  117. </tr>
  118. <tr>
  119. <td><input type="text" name="kraj" /></td>
  120. </tr>
  121. <tr>
  122. <td>E-mail:</td>
  123. </tr>
  124. <tr>
  125. <td><input type="text" name="email" /></td>
  126. </tr>
  127. <tr>
  128. <td>Strona WWW:</td>
  129. </tr>
  130. <tr>
  131. <td><input type="text" name="www" /></td>
  132. </tr>
  133. <tr>
  134. <td>Telefon:</td>
  135. </tr>
  136. <tr>
  137. <td><input type="text" name="tel" /></td>
  138. </tr>
  139. <tr>
  140. <td>Nazwa Firmy:</td>
  141. </tr>
  142. <tr>
  143. <td><input type="text" name="firma" /></td>
  144. </tr>
  145. <tr>
  146. <td>Marka pod jaką obiekt jest sprzedawany:</td>
  147. </tr>
  148. <tr>
  149. <td><input type="text" name="marka" /></td>
  150. </tr>
  151. <tr>
  152. <td>Firma:</td>
  153. </tr>
  154. <tr>
  155. <td><input type="radio" name="skad" />Polska<input type="radio" name="skad" />Zagraniczna</td>
  156. </tr>
  157. <tr>
  158. <td><br />Adres Firmy:</td>
  159. </tr>
  160. <tr>
  161. <td><br />Ulica, numer:</td>
  162. </tr>
  163. <tr>
  164. <td><input type="text" name="adres_dwa" /></td>
  165. </tr>
  166. <tr>
  167. <td>Kod pocztowy:</td>
  168. </tr>
  169. <tr>
  170. <td><input type="text" name="kod_dwa" /></td>
  171. </tr>
  172. <tr>
  173. <td>Miejscowość:</td>
  174. </tr>
  175. <tr>
  176. <td><input type="text" name="miejscowosc_dwa" /></td>
  177. </tr>
  178. <tr>
  179. <td>Kraj:</td>
  180. </tr>
  181. <tr>
  182. <td><input type="text" name="kraj_dwa" /></td>
  183. </tr>
  184. <tr>
  185. <td>E-mail:</td>
  186. </tr>
  187. <tr>
  188. <td><input type="text" name="email_dwa" /></td>
  189. </tr>
  190. <tr>
  191. <td>Strona WWW:</td>
  192. </tr>
  193. <tr>
  194. <td><input type="text" name="www_dwa" /></td>
  195. </tr>
  196. <tr>
  197. <td>Telefon:</td>
  198. </tr>
  199. <tr>
  200. <td><input type="text" name="telefon_dwa" /></td>
  201. </tr>
  202. <tr>
  203. <td>Osoba do kontaktu w firmie zgłaszającej obiekt/projekt (imię i nazwisko, funkcja, e-mail, Tel. kontaktowy): </td>
  204. </tr>
  205. <tr>
  206. <td><textarea rows="5" cols="40" name="osoba"></textarea></td>
  207. </tr>
  208. <tr><td><input type="button" value="Wyślij" style="background:#3768a0; border:#3768a0 1px solid; color:#FFFFFF; font-family:Trebuchet, Arial, sans-serif;; font-size:12px;" name="yes" />&nbsp;&nbsp;<input type="button" value="Reset" style="background:#3768a0; border:#3768a0 1px solid; color:#FFFFFF; font-family:Trebuchet, Arial, sans-serif;; font-size:12px;" name="reset" />
  209. </form></td>
  210. </div>
  211. </div>



Bardzo proszę o pomoc
potreb
Możesz zrobić za pomocą php zrobić 3 stronnicowy, przy okazji będziesz sprawdzał czy dane są poprawne.
husky999
okej, ale w jaki sposob to podzielic, zeby to zadziałało przy późniejszym wysłaniu... Jaką metode użyc do podzielenia formularza?
Blame
Normalnie. Dzielisz ten jeden na trzy osobne a dane między nimi i te końcowe trzymasz w sesji guitar.gif
husky999
w takim razie tak:

  1. http://www.artworldtm.com/design/formularz_zgloszeniowy


tutaj jest ten formularz.

I czesc to 'Informacje o obiekcie/projekcie:'
II to 'Informacje o zgłaszającym obiekt/projekt:'
jest jeszcze trzecia ale znajduje sie w divie 'display:none;'

jezeli wypełni się I częsc i klika sie w przycisk 'dalej' // ktoreg notabene jeszze nie ma// to przechodzi do kolejnej czesci czyli II. pytanie: jaki ma byc link do przycisku 'dalej' , zeby podczas przechodzenia do kolejnych czesci formularza nie wysyłało danych do mySQL, dopiero w ostatniej czesci czyli trzeciej był przycisk wysyłajacy. a coby content diva 'post' zawierał kolejne czesci formularza.

pozdarawiam i dziękuję za zainteresowanie tematem
PS. chciałbym to zrobic za pomoca przekazywania wartosci poprzedniego kroku do <input type="hidden" name="krok" /> tylko nei wiem jak sie zabrac za to.
thek
Zrób to w sesji, gdzie parametr action określonego formularza będzie przepychał do kolejnego fragmentu formularza. Tak więc będą pliki form1.php, form2.php, form3.php i send.php. Uzupełnienie form1 ustawi zmienne sesyjne i wywoła form2 ( po drodze może być walidacja), form2 zrobi to samo dla form3. Dopiero kliknięcie submit dla form3 zrobi walidację i zapis do bazy. Co istotne, to użycie takiej formy pozwala również linkiem wrócić do wcześniejszych części formularza. Będąc choćby w form3, możesz wrócić do form1.
Barcelona
A dopisze się jeszcze do tego tematu bo ciekawi mnie jedna rzecz. @thek piszesz że dane w formularzu będą się wypełniały z sesji, tak więc w inpucie w parametrze value musi być wpisane np. $_SESSION['producent']. I teraz moje pytanie, czy jeżeli mam puste zmienne sesyjne (sytuacja kiedy jestem na przykładowym form1.php i dopiero zaczynam wypełniać formularz) to czy prawidłowo wyświetli się formularz?


@husky999 koniecznie zrób walidacje danych bo złożyłem u Ciebie zamówienie nie wypełniając żadnego pola
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.