Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Wysyłka danych z checkbox
Forum PHP.pl > Forum > Przedszkole
senior.pol
Witam,

Jak przesłać dane z pola checkbox - jeśli jest zaznaczony, to wysyła "Tak", jeśli nie to "Nie".

Mój formularz wygląda mniej więcej tak:

  1. <div class="checkbox">
  2. <label for="warunki">
  3. <input type="hidden" name="warunki" value="Nie">
  4. <input type="checkbox" value="Tak" checked="checked" class="form-control-warunki" id="warunki" name="warunki">Akceptuję warunki uczestnictwa *
  5. </label>
  6. /div>


  1. $warunki = isset($_POST['warunki']) ? $_POST['warunki'] : '';
  2.  
  3. Akceptacja warunków uczestnictwa: $warunki\n
Rochu
Normalnie wysyłasz formularz i w php sprawdzasz czy dane pole z checkboxem istnieje, czyli najlepiej jeśli chcesz mieć status tak/nie robisz coś takiego

  1. if(isset($_POST['pole_checkbox'])) {
  2. //checkbox zostal zaznaczony
  3. }


jeśli nie masz znacznika form, w kodzie obejmującego te pola:
  1. <div class="checkbox">
  2. <form action="/" method="post">
  3. <label for="warunki">
  4. <input type="checkbox" checked="checked" class="form-control-warunki" id="warunki" name="warunki">Akceptuję warunki uczestnictwa *
  5. </label>
  6. </form>
  7. </div>


  1. $warunki = isset($_POST['warunki']) ? 'Tak' : 'Nie';
  2.  
  3. echo 'Akceptacja warunków uczestnictwa: '.$warunki.'<br/>';


//edit: jeżeli checkbox nie został zaznaczony to nie zostanie wysłana żadna wartość jeśli o to Ci głównie chodzi, wtedy musisz sobie to po stronie serwer obsłużyć jak wyżej.
senior.pol
Nie działa, chyba że źle zrozumiałem. W szerszej perspektywie kod wygląda następująco

  1. <?php
  2.  
  3. if(!$_POST) exit;
  4.  
  5. if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
  6.  
  7. $warunki = isset($_POST['warunki']) ? $_POST['warunki'] : '';
  8.  
  9. $address = "abc@abc.pl";
  10.  
  11. if(isset($_POST['warunki'])) {
  12. //checkbox zostal zaznaczony
  13. }
  14.  
  15.  
  16. $e_subject = "$przyklad";
  17.  
  18. $e_body = "$imie $nazwisko\n\nDane adresowe: $adres, $kod $miasto\nLiczba miejsc rezerwowanych: $liczba\nAkceptacja warunków uczestnictwa: $warunki\nZgoda na przetwarzanie danych w procesie rezerwacji: $zgoda\nFaktura: $faktura\n";
  19.  
  20.  
  21. $msg = wordwrap( $e_body . $e_content . $e_reply, 70 );
  22.  
  23. $headers = "From: $email" . PHP_EOL;
  24. $headers .= "Reply-To: $email" . PHP_EOL;
  25. $headers .= "MIME-Version: 1.0" . PHP_EOL;
  26. $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
  27. $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
  28.  
  29. if(mail($address, $e_subject, $msg, $headers)) {
  30.  
  31. echo '<div class="pi-alert-success fade in"><button type="button" class="pi-close" data-dismiss="alert"><i class="icon-cancel"></i></button><p><strong>Gratulacje!</strong> Instrukcję finalizacji rezerwacji otrzymasz w wiadomości e-mail.</p></div>';
  32.  
  33. } else {
  34.  
  35. echo 'ERROR!';
  36.  
  37. }
  38. ?>


  1. <form role="form" action="rezerwacja.php" class="pi-contact-form">
  2. <div class="checkbox">
  3. <label for="warunki">
  4. <input type="checkbox" checked="checked" class="form-control-warunki" id="warunki" name="warunki">Akceptuję warunki uczestnictwa *
  5. </label>
  6. </div>
  7. </form>


Jak to można rozwiązać?
Rochu
  1. <?php
  2.  
  3. if(!$_POST) exit;
  4.  
  5. if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");
  6.  
  7. $warunki = isset($_POST['warunki']) ? ''Tak' : 'Nie';
  8.  
  9. $address = "abc@abc.pl";
  10.  
  11. $e_subject = "$przyklad";
  12.  
  13. $e_body = "$imie $nazwisko\n\nDane adresowe: $adres, $kod $miasto\nLiczba miejsc rezerwowanych: $liczba\nAkceptacja warunków uczestnictwa: $warunki\nZgoda na przetwarzanie danych w procesie rezerwacji: $zgoda\nFaktura: $faktura\n";
  14.  
  15.  
  16. $msg = wordwrap( $e_body . $e_content . $e_reply, 70 );
  17.  
  18. $headers = "From: $email" . PHP_EOL;
  19. $headers .= "Reply-To: $email" . PHP_EOL;
  20. $headers .= "MIME-Version: 1.0" . PHP_EOL;
  21. $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
  22. $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
  23.  
  24. if(mail($address, $e_subject, $msg, $headers)) {
  25.  
  26. echo '<div class="pi-alert-success fade in"><button type="button" class="pi-close" data-dismiss="alert"><i class="icon-cancel"></i></button><p><strong>Gratulacje!</strong> Instrukcję finalizacji rezerwacji otrzymasz w wiadomości e-mail.</p></div>';
  27.  
  28. } else {
  29.  
  30. echo 'ERROR!';
  31.  
  32. }
  33. ?>


  1. <form role="form" action="rezerwacja.php" class="pi-contact-form" method="post">
  2. <div class="checkbox">
  3. <label for="warunki">
  4. <input type="checkbox" checked="checked" class="form-control-warunki" id="warunki" name="warunki">Akceptuję warunki uczestnictwa *
  5. </label>
  6. </div>
  7. </form>
senior.pol
Cytat(Rochu @ 1.03.2015, 04:46:00 ) *
  1. $warunki = isset($_POST['warunki']) ? ''Tak' : 'Nie';


Działa, dzięki specool.gif

Poprawiam tylko mały błąd znacznika - podwójny cudzysłów w słowie "Tak".

  1. $warunki = isset($_POST['warunki']) ? 'Tak' : 'Nie';

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.