Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] pola aktywne i nieaktywne w formularzu zależne od opcji
Forum PHP.pl > Forum > Przedszkole
kulbi
witam wszystkich

adres formularza: www.test.kulbi.pl
spakowany plik index.php: www.pliki.kulbi.pl/finalizacja_test.zip

mam takie pytanko:

Jak zrobić aby polu "miejsce dostarczenia przesyłki:"
po wybraniu "na adres z Allegro" poniższe pola były nieaktywne,
po wybraniu "na poniższe dane" poniższe pola były aktywne,

oraz tak samo w danych do faktury
po wybraniu paragon poniższe pola były nieaktywne,
po wybraniu faktura poniższe pola były aktywne.

pozdrawiam
mike
Proszę przedytoać posta i pokazać kod tu na forum.
Mało komu będzie się chcialo ściagać i rozpakowywać.


Przenoszę z PHP na Przeszkole
kulbi
  1. <?php
  2. if (count($_POST))
  3. {
  4. ////////// USTAWIENIA //////////
  5. $email = 'moj_mail@wp.pl'; // Adres e-mail adresata
  6. $subject = 'formularz potwierdzenia'; // Temat listu
  7. $message = '<center><h2>Dziękujemy za wysłanie formularza</h2</center>'; // Komunikat
  8. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  9. $charset = 'iso-8859-2'; // Strona kodowa
  10. //////////////////////////////
  11.  
  12. $head =
  13. "MIME-Version: 1.0rn" .
  14. "Content-Type: text/plain; charset=$charsetrn" .
  15. "Content-Transfer-Encoding: 8bit";
  16. $body = '';
  17. foreach ($_POST as $name => $value)
  18. {
  19. if (is_array($value))
  20. {
  21. for ($i = 0; $i < count($value); $i++)
  22. {
  23. $body .= "$name = " . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "rn";
  24. }
  25. }
  26. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "rn";
  27. }
  28. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29. }
  30. else
  31. {
  32. ?>
  33. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//PL">
  34. <html>
  35.  
  36. <head><title>zamówienie sklep42</title>
  37.  
  38. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  39. <meta http-equiv="content-language" content="pl">
  40. <meta http-equiv="Pragma" content="NoCache">
  41.  
  42. </head>
  43.  
  44. <body text="#555555" background="background.gif">
  45.  
  46. <form action="?" method="post">
  47. <center>
  48.  
  49.  
  50. <table border="0" width="700" bgcolor="#EEEEEE">
  51.  
  52. <tr>
  53.  <td colspan=2 bgcolor="#555555">
  54. <b><center><font face="Verdana" size="4" color="#FFFFFF">DANE DO WYSYŁKI</font></b></center>
  55.  </td>
  56. </tr>
  57.  
  58. <tr>
  59.  <td align="right">
  60. <b><font face="Verdana" size="2">login z Allegro:</font></b>
  61.  </td>
  62.  <td>
  63. <input type="text" name="login Allegro[]" maxlength="50" size="20"> 
  64.  </td>
  65. </tr>
  66.  
  67. <tr>
  68.  <td align="right" valign="top">
  69. <b><font face="Verdana" size="2">miejsce dostarczenia przesyłki:</font></b>
  70.  </td>
  71.  <td>
  72. <input type="radio" name="adres docelowy[]" value="na adres z Allegro" checked="checked"> 
  73. <font face="Verdana" size="2">na adres z Allegro</font><br>
  74. <input type="radio" name="adres docelowy[]" value="na ponizsze dane"> 
  75. <font face="Verdana" size="2">na poniższe dane</font>
  76. <hr size="1" color="#AAAAAA">
  77. </td>
  78. </tr>
  79.  
  80. <tr>
  81.  <td align="right">
  82. <b><font face="Verdana" size="2">Firma</font></b>
  83.  </td>
  84.  <td>
  85. <input type="text" name="Firma[]" maxlength="60" size="30">
  86. <font face="Verdana" size="2">(opcjonalnie)</font> 
  87.  </td>
  88. </tr>
  89.  
  90. <tr>
  91.  <td align="right">
  92. <b><font face="Verdana" size="2">Nazwisko i Imię</font></b>
  93.  </td>
  94.  <td>
  95. <input type="text" name="Nazwisko i imie[]" maxlength="80" size="50"> 
  96.  </td>
  97. </tr>
  98.  
  99. <tr>
  100.  <td align="right">
  101. <b><font face="Verdana" size="2">ulica, dom, lokal:</font></b>
  102.  </td>
  103.  <td>
  104. <input type="text" name="ulica[]" maxlength="50" size="20"> 
  105. <input type="text" name="dom[]" maxlength="20" size="3"> / 
  106. <input type="text" name="lokal[]" maxlength="20" size="3">
  107.  </td>
  108. </tr>
  109.  
  110. <tr>
  111.  <td align="right">
  112. <b><font face="Verdana" size="2">kod, miasto, poczta:</font></b>
  113.  </td>
  114.  <td>
  115. <input type="text" name="kod[]" maxlength="6" size="5"> 
  116. <input type="text" name="miasto[]" maxlength="50" size="15">
  117. <input type="text" name="poczta[]" maxlength="50" size="15">
  118.  </td>
  119. </tr>
  120.  
  121. <tr>
  122.  <td align="right">
  123. <b><font face="Verdana" size="2">tel. stacjonarny / tel. komórkowy:</font></b>
  124.  </td>
  125.  <td>
  126. <input type="text" name="tel.stacjonarny[]" maxlength="30" size="15">
  127. <input type="text" name="tel.komórkowy[]" maxlength="30" size="15">
  128. <font color="red" face="Verdana" size="2"><b>*</b></font>
  129.  </td>
  130. </tr>
  131.  
  132. <tr>
  133.  <td align="right">
  134. <b><font face="Verdana" size="2">adres e-mail:</font></b>
  135.  </td>
  136.  <td>
  137. <input type="text" name="e-mail[]" maxlength="50" size="20">
  138.  </td>
  139. </tr>
  140.  
  141. <tr>
  142.  <td align="right" valign="top">
  143. <b><font face="Verdana" size="2">uwagi:</font></b>
  144.  </td>
  145.  <td>
  146. <textarea name="uwagi[]" cols="40" rows="2"></textarea>
  147.  </td>
  148. </tr>
  149.  
  150. <tr>
  151.  <td colspan=2>
  152. <div align="right" valign="top">
  153. <font color="red" face="Verdana" size="2"><b>*</b></font>
  154. <font face="Verdana" size="2"> - proszę podać przynajmniej jeden numer kontaktowy</font>
  155. </div>
  156.  </td>
  157. </tr>
  158.  
  159.  
  160.  
  161.  
  162. <tr><td colspan=2> </td></tr>
  163. <tr><td colspan=2> </td></tr>
  164.  
  165.  
  166.  
  167.  
  168. <tr>
  169.  <td colspan=2 bgcolor="#555555">
  170. <b><center><font face="Verdana" size="4" color="#FFFFFF">DANE DO FAKTURY</font></b>
  171. <br><font face="Verdana" size="2" color="#FFFFFF">
  172. jeżeli chca Państwo otrzymać fakturę VAT proszę wypełnić poniższe pola</font></center>
  173.  </td>
  174. </tr>
  175.  
  176. <tr>
  177.  <td align="right">
  178. <b><font face="Verdana" size="2">dowód sprzedaży:</font></b></td>
  179.  <td>
  180. <select name="dokument sprzedaży[]">
  181.  <option>paragon</option>
  182.  <option>faktura</option>
  183. </select>
  184.  </td>
  185. </tr>
  186.  
  187. <tr>
  188.  <td align="right">
  189. <b><font face="Verdana" size="2">FIRMA / Imię i Nazwisko:</font></b></td>
  190.  <td>
  191. <input type="hidden" name="  " value=""><input type="hidden" name=" " value="">
  192. <input type="hidden" name="...........................DANE DO FAKTURY..............................." value="">
  193. <input type="text" name="faktura NAZWA[]" maxlength="50" size="30">
  194.  </td>
  195. </tr>
  196.  
  197. <tr>
  198.  <td align="right">
  199. <b><font face="Verdana" size="2">ulica, dom, lokal:</font></b>
  200.  </td>
  201.  <td>
  202. <input type="text" name="faktura ulica[]" maxlength="50" size="20"> 
  203. <input type="text" name="faktura dom[]" maxlength="20" size="3"> / 
  204. <input type="text" name="faktura lokal[]" maxlength="20" size="3">
  205.  </td>
  206. </tr>
  207.  
  208. <tr>
  209.  <td align="right">
  210. <b><font face="Verdana" size="2">kod, miasto:</font></b>
  211.  </td>
  212.  <td>
  213. <input type="text" name="faktura kod[]" maxlength="6" size="5"> 
  214. <input type="text" name="faktura miasto[]" maxlength="50" size="15">
  215.  </td>
  216. </tr>
  217.  
  218. <tr>
  219.  <td align="right">
  220. <b><font face="Verdana" size="2">NIP:</font></b>
  221.  </td>
  222.  <td>
  223. <input type="text" name="faktura NIP[]" maxlength="13" size="20">
  224.  </td>
  225. </tr>
  226.  
  227. <tr>
  228.  <td align="right">
  229. <b><font face="Verdana" size="2">numer rejestracyjny pojazdu:</font></b>
  230.  </td>
  231.  <td>
  232. <input type="text" name="faktura blachy[]" maxlength="15" size="20"> 
  233. <font face="Verdana" size="2">(opcjonalnie)</font>
  234.  </td>
  235. </tr>
  236.  
  237. <tr>
  238.  <td align="right" valign="top">
  239. <b><font face="Verdana" size="2">uwagi:</font></b>
  240.  </td>
  241.  <td>
  242. <textarea name="faktura uwagi[]" cols="40" rows="2"></textarea>
  243.  </td>
  244. </tr>
  245.  
  246.  
  247.  
  248.  
  249. <tr><td colspan=2> </td></tr>
  250. <tr><td colspan=2> </td></tr>
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257. <tr>
  258.  <td colspan=2>
  259. <center>
  260.  <input type="submit" value="WYSLIJ FORMULARZ">
  261. </center>
  262.  </td>
  263. </tr>
  264.  
  265. <tr><td colspan=2> </td></tr>
  266.  
  267. </table>
  268. </center>
  269. </form>
  270. </BODY>
  271. </HTML>
  272. <?php
  273. }
  274. ?>


w powyższym kodzie umieściłem tylko potrzebne rzeczy czyli "DANE DO WYSYŁKI" oraz "DANE DO FAKTURY" ponieważ zabrakło znaków
pozdrawiam


-------------------------
zabrakło Ci jeszcze odpowiedniego
wykorzystania BBCode
poprawiłem ale na przyszłość
pamiętaj o tym
~Cienki1980
Cienki1980
Możesz zrobić to na dwa sposoby.
Albo umieścić pola formularza w divie, który będziesz pokazywał lub ukrywał w zależności od wybranej opcji, lub podczas zmiany w polu RADIO będziesz blokował poszczególne pola formularza.

To drugie będzie miało więcej kodu ja daje Ci przykład na rozwiązanie numer 1.
  1. <script language="javascript">
  2. function blokuj(co)
  3. {
  4. if(co=='on')
  5. document.getElementById('adres').style.display='inline';
  6. else
  7. document.getElementById('adres').style.display='none';
  8. }
  9. <body bgcolor="#FFFFFF">
  10.  
  11. <input type="radio" name="adres" value="0" checked onClick="blokuj('off')">wysylka na adres podany<br>
  12. <input type="radio" name="adres" value="1" onClick="blokuj('on')">wysylka na inny adres<br>
  13. <div id="adres" style="display:none">
  14. <input type="text">
  15. </div>
abc667
albo ten drugi sposób

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//PL">
  2.  
  3. <head><title>zamówienie sklep42</title>
  4.  
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="content-language" content="pl">
  7. <meta http-equiv="Pragma" content="NoCache">
  8. <script type="text/javascript">
  9.  
  10.  
  11. var val;
  12. var dis;
  13.  
  14. window.onload = function() {
  15. var radio = document.forms['form'].elements['adres docelowy[]'];
  16.  
  17. for(var i = 0; i < radio.length; i++) {
  18. if(radio[i].checked) {
  19. val = radio[i].value;
  20. }
  21. }
  22. //pola formularza do wyłączania
  23. pola = new Array('Firma[]', 'Nazwisko i imie[]', 'dom[]', 'ulica[]', 'lokal[]');
  24.  
  25. if(val = "na adres z Allegro")
  26. { dis = true; setDis(true); } else { dis = false; setDis(false); }
  27.  
  28.  
  29. }
  30.  
  31. function setDis(b)
  32. {
  33. var dis2;
  34. if(b) { dis2 = 'disabled'; } else { dis2 = ''; }
  35.  
  36. for(var j=0;j<pola.length;j++)
  37. {
  38. document.forms['form'].elements[pola[j]].disabled=dis2;
  39. }
  40.  
  41. dis = !dis;
  42. }
  43.  
  44. </head>
  45.  
  46. <body text="#555555" background="background.gif">
  47.  
  48. <form action="?" method="post" name="form">
  49.  
  50.  
  51. <table border="0" width="700" bgcolor="#EEEEEE">
  52.  
  53. <tr>
  54. <td colspan=2 bgcolor="#555555">
  55. <b><center><font face="Verdana" size="4" color="#FFFFFF">DANE DO WYSYŁKI</font></b></center>
  56. </td>
  57. </tr>
  58.  
  59. <tr>
  60. <td align="right">
  61. <b><font face="Verdana" size="2">login z Allegro:</font></b>
  62. </td>
  63. <td>
  64. <input type="text" name="login Allegro[]" maxlength="50" size="20">
  65. </td>
  66. </tr>
  67.  
  68. <tr>
  69. <td align="right" valign="top">
  70. <b><font face="Verdana" size="2">miejsce dostarczenia przesyłki:</font></b>
  71. </td>
  72. <td>
  73. <input type="radio" name="adres docelowy[]" onchange="setDis(dis);" value="na adres z Allegro" checked="checked">
  74. <font face="Verdana" size="2">na adres z Allegro</font><br>
  75. <input type="radio" name="adres docelowy[]" onchange="setDis(dis);" value="na ponizsze dane">
  76. <font face="Verdana" size="2">na poniższe dane</font>
  77. <hr size="1" color="#AAAAAA">
  78. </td>
  79. </tr>
  80.  
  81. <tr>
  82. <td align="right">
  83. <b><font face="Verdana" size="2">Firma</font></b>
  84. </td>
  85. <td>
  86. <input type="text" name="Firma[]" maxlength="60" size="30">
  87. <font face="Verdana" size="2">(opcjonalnie)</font>
  88. </td>
  89. </tr>
  90.  
  91. <tr>
  92. <td align="right">
  93. <b><font face="Verdana" size="2">Nazwisko i Imię</font></b>
  94. </td>
  95. <td>
  96. <input type="text" name="Nazwisko i imie[]" maxlength="80" size="50">
  97. </td>
  98. </tr>
  99.  
  100. <tr>
  101. <td align="right">
  102. <b><font face="Verdana" size="2">ulica, dom, lokal:</font></b>
  103. </td>
  104. <td>
  105. <input type="text" name="ulica[]" maxlength="50" size="20">
  106. <input type="text" name="dom[]" maxlength="20" size="3"> /
  107. <input type="text" name="lokal[]" maxlength="20" size="3">
  108. </td>
  109. </tr>
  110.  
  111. .............
kulbi
dzięki działa masz u mnie piwo, ale jak np. chcę zrobić dwie takie reguły w tym jednym formularzu (jeszcze tak samo żeby było w PARAGON / FAKTURA) to muszę coś przerabiać w java script?
abc667
przerobiłem tak żeby nie trzeba już było edytować za bardzo js, żeby dodać kolejne "bloki" wystarczy do tablicy odpowiednie wartości podopisywać, to już można na zasadzie analogii więc nie powinno być problemu

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//PL">
  2.  
  3. <head><title>zamówienie sklep42</title>
  4.  
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="content-language" content="pl">
  7. <meta http-equiv="Pragma" content="NoCache">
  8. <script type="text/javascript">
  9.  
  10.  
  11. val = new Array();
  12. dis = new Array();
  13.  
  14. window.onload = function() {
  15. var radio = document.forms['form'].elements['adres docelowy[]'];
  16.  
  17. for(var i = 0; i < radio.length; i++) {
  18. if(radio[i].checked) {
  19. val[1] = radio[i].value;
  20. }
  21. }
  22.  
  23. val[2] = document.forms['form'].elements['dokument sprzedaży[]'].value;
  24.  
  25. pola = new Array();
  26.  
  27. pola[1] = new Array('Firma[]', 'Nazwisko i imie[]', 'dom[]', 'ulica[]', 'lokal[]');
  28. pola[2] = new Array('faktura NAZWA[]', 'faktura ulica[]', 'faktura dom[]', 'faktura lokal[]');
  29.  
  30. if(val[1] = "na adres z Allegro")
  31. { dis[1] = true; setDis(true, 1); } else { dis[1] = false; setDis(false, 1); }
  32.  
  33. if(val[2] = "paragon") { dis[2] = true; setDis(true, 2); } else { dis[2] = false; setDis(true, 2); }
  34.  
  35. }
  36.  
  37. function setDis(b, x)
  38. {
  39. var status;
  40. if(b) { status = 'disabled'; } else { status = ''; }
  41.  
  42. for(var j=0;j<(pola[x]).length;j++)
  43. {
  44. document.forms['form'].elements[pola[x][j]].disabled=status;
  45. }
  46.  
  47. dis[x] = !dis[x];
  48. }
  49.  
  50. </head>
  51.  
  52. <body text="#555555" background="background.gif">
  53.  
  54. <form action="?" method="post" name="form">
  55.  
  56.  
  57. <table border="0" width="700" bgcolor="#EEEEEE">
  58.  
  59. <tr>
  60. <td colspan=2 bgcolor="#555555">
  61. <b><center><font face="Verdana" size="4" color="#FFFFFF">DANE DO WYSYŁKI</font></b></center>
  62. </td>
  63. </tr>
  64.  
  65. <tr>
  66. <td align="right">
  67. <b><font face="Verdana" size="2">login z Allegro:</font></b>
  68. </td>
  69. <td>
  70. <input type="text" name="login Allegro[]" maxlength="50" size="20">
  71. </td>
  72. </tr>
  73.  
  74. <tr>
  75. <td align="right" valign="top">
  76. <b><font face="Verdana" size="2">miejsce dostarczenia przesyłki:</font></b>
  77. </td>
  78. <td>
  79. <input type="radio" name="adres docelowy[]" onchange="setDis(dis[1], 1);" value="na adres z Allegro" checked="checked">
  80. <font face="Verdana" size="2">na adres z Allegro</font><br>
  81. <input type="radio" name="adres docelowy[]" onchange="setDis(dis[1], 1);" value="na ponizsze dane">
  82. <font face="Verdana" size="2">na poniższe dane</font>
  83. <hr size="1" color="#AAAAAA">
  84. </td>
  85. </tr>
  86.  
  87. [...]
  88.  
  89.  
  90. <tr>
  91. <td colspan=2 bgcolor="#555555">
  92. <b><center><font face="Verdana" size="4" color="#FFFFFF">DANE DO FAKTURY</font></b>
  93. <br><font face="Verdana" size="2" color="#FFFFFF">
  94. jeżeli chca Państwo otrzymać fakturę VAT proszę wypełnić poniższe pola</font></center>
  95. </td>
  96. </tr>
  97.  
  98. <tr>
  99. <td align="right">
  100. <b><font face="Verdana" size="2">dowód sprzedaży:</font></b></td>
  101. <td>
  102. <select name="dokument sprzedaży[]" onchange="setDis(dis[2], 2);">
  103. <option>paragon</option>
  104. <option>faktura</option>
  105. </select>
  106. </td>
  107. </tr>
  108.  
  109. [...]
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.