Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] pola aktywne i nieaktywne w formularzu zależne od opcji
kulbi
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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


Przenoszę z PHP na Przeszkole
Go to the top of the page
+Quote Post
kulbi
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2007

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
Cienki1980
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
abc667
post
Post #5





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


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. .............
Go to the top of the page
+Quote Post
kulbi
post
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2007

Ostrzeżenie: (0%)
-----


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?

Ten post edytował kulbi 17.06.2007, 11:01:36
Go to the top of the page
+Quote Post
abc667
post
Post #7





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

Ostrzeżenie: (0%)
-----


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. [...]
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 1.10.2025 - 18:18