Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Wysyłka danych z checkbox
senior.pol
post 28.02.2015, 15:26:21
Post #1





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 10.08.2011

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


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
Go to the top of the page
+Quote Post
Rochu
post 28.02.2015, 15:31:33
Post #2





Grupa: Zarejestrowani
Postów: 64
Pomógł: 14
Dołączył: 25.09.2010

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


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.

Ten post edytował Rochu 28.02.2015, 15:37:15
Go to the top of the page
+Quote Post
senior.pol
post 28.02.2015, 19:25:47
Post #3





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 10.08.2011

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


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ć?

Ten post edytował senior.pol 28.02.2015, 15:56:10
Go to the top of the page
+Quote Post
Rochu
post 1.03.2015, 04:46:00
Post #4





Grupa: Zarejestrowani
Postów: 64
Pomógł: 14
Dołączył: 25.09.2010

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


  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>
Go to the top of the page
+Quote Post
senior.pol
post 1.03.2015, 16:14:02
Post #5





Grupa: Zarejestrowani
Postów: 158
Pomógł: 0
Dołączył: 10.08.2011

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


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';



Ten post edytował senior.pol 2.03.2015, 00:26:04
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 20:49