Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]formularz zamówień checkbox faktura
Forum PHP.pl > Forum > Przedszkole
alexy55
Witam posiadam skrypt formularza PHP.

Jestem początkujący w tym temacie czy mógłby ktoś powiedzieć co wpisać aby dane do faktury byly dostępne tylko po znaznaczeniu checkboxa faktura?

Co zmienić jak dodać to do poniższego formularza?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <link rel="Stylesheet" href="csskontakt.css">
  6. <!--[if IE 8]><link media="screen" rel="stylesheet" href="csskontaktnewie8.css" type="text/css" /><![endif]-->
  7. </head>
  8. <body style="color: #FFF; font-family: Tahoma, Geneva, sans-serif; font-size: 15px; background: transparent; background-image: url(http://www.zymdesign.eu/nic.png);">
  9. <?php
  10. if (count($_POST))
  11. {
  12. ////////// USTAWIENIA //////////
  13. $email = 'testowymail@o2.pl'; // Adres e-mail adresata
  14. $subject = 'Formularz zamówienia - testowy mail'; // Temat listu
  15. $message = '<div style="margin-top: 100px; text-align: center;">Formularz zamówienia został wysłany. Dziękujemy.</div>'; // Komunikat
  16. $error = '<div style="margin-top: 100px; text-align: center;">Wystąpił bląd podczas wysyłania formularza. Prosimy o kontakt: testowy mail</div>'; // Komunikat bledu
  17. $charset = 'utf-8'; // Strona kodowa
  18. //////////////////////////////
  19.  
  20. $head =
  21. "MIME-Version: 1.0\r\n" .
  22. "Content-Type: text/plain; charset=$charset\r\n" .
  23. "Content-Transfer-Encoding: 8bit";
  24. $body = '';
  25. foreach ($_POST as $name => $value)
  26. {
  27. if (is_array($value))
  28. {
  29. for ($i = 0; $i < count($value); $i++)
  30. {
  31. $body .= "$name - " . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  32. }
  33. }
  34. else $body .= "$name - " . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  35. }
  36. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  37. }
  38. else
  39. {
  40. ?>
  41. <form action="kontakt2.php" method="post"
  42. <script type="text/javascript">
  43. // <![CDATA[
  44. function sprawdz(formularz)
  45. {
  46. for (i = 0; i < formularz.length; i++)
  47. {
  48. var pole = formularz.elements[i];
  49. if (!pole.disabled && !pole.readonly && (pole.type == "text" || pole.type == "password" || pole.type == "textarea") && pole.value == "")
  50. {
  51. alert("Proszę wypełnić wszystkie pola!");
  52. return false;
  53. }
  54. }
  55. return true;
  56. }
  57. // ]]>
  58. </script>
  59. <center>
  60. <div id="linia">
  61. <div id="tytul">Wpisz nazwę produktu oraz ilości:</div>
  62. <div id="pole"><textarea name="Zamówienie" cols="" rows=""></textarea></div>
  63. </div>
  64. <div id="linia">
  65. <div id="tytul2">Dane do faktury:</div>
  66. </div>
  67. <div id="linia">
  68. <div id="tytul">Imię i Nazwisko:</div>
  69. <div id="pole"><input value="" title="Faktura - Imię" type="text" name="Faktura - Imię" /></div>
  70. </div>
  71. <div id="linia">
  72. <div id="tytul">Ulica:</div>
  73. <div id="pole"><input value="" title="Faktura - Ulica" type="text" name="Faktura - Ulica" /></div>
  74. </div>
  75. <div id="linia">
  76. <div id="tytul">Miejscowość:</div>
  77. <div id="pole"><input value="" title="Faktura - Miejscowość" type="text" name="Faktura - Miejscowość" /></div>
  78. </div>
  79. <div id="linia">
  80. <div id="tytul">Telefon:</div>
  81. <div id="pole"><input value="" title="Faktura - Telefon" type="text" name="Faktura - Telefon" /></div>
  82. </div>
  83. <div id="linia">
  84. <div id="tytul">E-Mail:</div>
  85. <div id="pole"><input value="" title="Faktura - Mail" type="text" name="Faktura - Mail" /></div>
  86. </div>
  87. <div id="linia">
  88. <div id="tytul">NIP:</div>
  89. <div id="pole"><input value="" title="Faktur - aNIP" type="text" name="Faktura - NIP" /></div>
  90. </div>
  91. <div id="linia">
  92. <div id="tytul2">Adres wysyłki:</div>
  93. </div>
  94. <div id="linia">
  95. <div id="tytul">Nazwa Firmy:</div>
  96. <div id="pole"><input value="" title="Wysyłka - Firma" type="text" name="Wysyłka - Firma" /></div>
  97. </div>
  98. <div id="linia">
  99. <div id="tytul">Imię i Nazwisko:</div>
  100. <div id="pole"><input value="" title="Wysyłka - Imię" type="text" name="Wysyłka - Imię" /></div>
  101. </div>
  102. <div id="linia">
  103. <div id="tytul">Ulica:</div>
  104. <div id="pole"><input value="" title="Wysyłka - Ulica" type="text" name="Wysyłka - Ulica" /></div>
  105. </div>
  106. <div id="linia">
  107. <div id="tytul">Miejscowość:</div>
  108. <div id="pole"><input value="" title="Wysyłka - Miejscowość" type="text" name="Wysyłka - Miejscowość" /></div>
  109. </div>
  110. <div id="linia">
  111. <div id="tytul">Telefon kontaktowy:</div>
  112. <div id="pole"><input value="" title="Wysyłka - Telefon" type="text" name="Wysyłka - Telefon" /></div>
  113. </div>
  114. <div id="linia">
  115. <div id="wyslij"><input id="send" type="submit" value="wyślij" /></div>
  116. </div>
  117. </center>
  118. </form>
  119. <?php
  120. }
  121. ?>
  122.  
  123. </body>
Ilware
musisz zrobić część do faktury niewidoczną , i w momencie zaznaczenia checkboxa odkryć ją

np za pomocą jQuery

alexy55
Pomógłbyś w tym? czy nie masz zwyczaju pomagać w taki sposób?
CuteOne
google -> css display
google -> js change style
google -> js ukrywanie elementów strony
mortus
Wskazówki kolegów mogłyby pomóc, gdyby nie fakt, że Twój HTML jest nieprawidłowy. W dokumencie (X)HTML może istnieć tylko jeden element o danym identyfikatorze (id), a Ty masz ich więcej. Musisz zastąpić te identyfikatory klasami (mówię o zastąpieniu tego: id="linia", id="tytul", id="pole" tym: class="linia", class="tytul", class="pole"). Oczywiście w stylu CSS dla takich elementów klasę deklarujemy inaczej, mianowicie:
  1. .linia {
  2. }
  3. .tytul {
  4. }
  5. .pole {
  6. }

Błędem jest również stosowanie polskich znaków i spacji w atrybucie name elementów formularza (np. name="Zamówienie", name="Faktura - Miejscowość").

Co do problemu to najlepiej zamknąć wszystkie pola dla faktury w jednym kontenerze (<div> </div>) o unikalnym id (np. "faktura_dane"), przed nimi wstawić pole typu checkbox i je obsłużyć w JavaScript.
  1. <div class="linia">
  2. <div class="tytul">Faktura</div>
  3. <div class="pole"><input type="checkbox" name="faktura" onchange="pokazUkryjPolaFaktury(this.checked); return false;" /> faktura</div>
  4. </div>
  5. <div id="faktura_dane">
  6. <!-- tutaj wszystkie dane do fakktury -->
  7. </div>
  8. <script type="text/javascript">
  9. function pokazUkryjPolaFaktury(wybrano) {
  10. if(wybrano) {
  11. getElementById("faktura_dane").style.display = "block";
  12. } else {
  13. getElementById("faktura_dane").style.display = "none";
  14. }
  15. }


Swoją drogą produkty raczej powinno się wybierać z listy określonych, aniżeli wpisywać ich nazwę i ilość w polu typu textarea.
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.