Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] [html] Checkbox i wysyłka formularza
senior.pol
post
Post #1





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

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


Witam,
Mam problem z checkboxem w formularzu, który domyślnie jest zaznaczony i nie zwraca prawidłowo wartości i błędu.
Docelowo chcę mieć następującą sytuację: Jeśli pole checkbox zostanie odznaczone, to wyświetli się komunikat z błędem i nie pozwoli
wysłać formularza (nie chcę korzystać z opcji blokowanie buttonu submit), jeśli pozostanie nie ruszone, to wyśle wartość np. value.

W html-u wygląda to następująco:
  1. <div class="checkbox">
  2. <label for="warunki">
  3. <input type="hidden" name="warunki" value="Nie">
  4. <input type="checkbox" checked="chcecked" class="form-control-warunki" id="warunki">Akceptuję warunki uczestnictwa *
  5. </label>
  6. </div>


, a w php:

  1. if (isset($warunki) == '') {
  2. echo '<div class="pi-alert-danger fade in"><button type="button" class="pi-close" data-dismiss="alert"><i class="icon-cancel"></i></button><p>Przykładowa treść błędu.</p></div>';
  3. exit();
  4. }


Zna ktoś może rozwiązanie tego problemu?

PS. W internecie przeczytałem już sporo na ten temat, ale rozwiązania dla mojego przypadku nie znalazłem (IMG:style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zapewniam Cię, że działa. Skleiłem kod w całość:
  1. <form method="post">
  2. <input type="hidden" name="warunki" value="Nie">
  3. <input type="checkbox" checked="chcecked" class="form-control-warunki" id="warunki" name="warunki" value="Tak">Akceptuję warunki uczestnictwa *
  4.  
  5. <input type="submit">
  6. </form>
  7.  
  8. <?php
  9. if (isset($_POST['warunki']) && $_POST['warunki'] === 'Tak') {
  10. die('OK :)');
  11. }
  12. else {
  13. die('NIE OK :(');
  14. }
Go to the top of the page
+Quote Post
senior.pol
post
Post #3





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

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


Cytat(phpion @ 27.02.2015, 14:27:26 ) *
Zapewniam Cię, że działa. Skleiłem kod w całość:
  1. <form method="post">
  2. <input type="hidden" name="warunki" value="Nie">
  3. <input type="checkbox" checked="chcecked" class="form-control-warunki" id="warunki" name="warunki" value="Tak">Akceptuję warunki uczestnictwa *
  4.  
  5. <input type="submit">
  6. </form>
  7.  
  8. <?php
  9. if (isset($_POST['warunki']) && $_POST['warunki'] === 'Tak') {
  10. die('OK :)');
  11. }
  12. else {
  13. die('NIE OK :(');
  14. }


Nie wiem czemu, ale dalej nie działa. Może to wina czegoś innego:

  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']) && $_POST['warunki'] === 'Tak') {
  12. die('OK :)');
  13. }
  14. else {
  15. die('NIE OK :(');
  16. }
  17.  
  18.  
  19. $e_subject = "$rejs - rezerwacja miejsca";
  20.  
  21. $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";
  22.  
  23.  
  24. $msg = wordwrap( $e_body . $e_content . $e_reply, 70 );
  25.  
  26. $headers = "From: $email" . PHP_EOL;
  27. $headers .= "Reply-To: $email" . PHP_EOL;
  28. $headers .= "MIME-Version: 1.0" . PHP_EOL;
  29. $headers .= "Content-type: text/plain; charset=utf-8" . PHP_EOL;
  30. $headers .= "Content-Transfer-Encoding: quoted-printable" . PHP_EOL;
  31.  
  32. if(mail($address, $e_subject, $msg, $headers)) {
  33.  
  34. 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>';
  35.  
  36. } else {
  37.  
  38. echo 'ERROR!';
  39.  
  40. }
  41. ?>
  42.  


  1. <form role="form" action="rezerwacja.php" class="pi-contact-form">
  2. <div class="checkbox">
  3. <label for="warunki">
  4. <input type="hidden" name="warunki" value="Nie">
  5. <input type="checkbox" checked="chcecked" class="form-control-warunki" id="warunki" name="warunki" value="Tak">Akceptuję warunki uczestnictwa *
  6. </label>
  7. </div>
  8. <div class="pi-error-container"></div>
  9. <p>
  10. <button class="btn pi-btn-base pi-btn-wide pi-uppercase pi-weight-700 pi-letter-spacing">
  11. Rezerwuję miejsce <i class="icon-check pi-icon-left"></i>
  12. </button>
  13. </p>
  14. </form>


Zależy mi na powiadamianiu użytkownika, gdy odznaczy pole akceptacji, w przeciwnym razie formularz nie zostanie wysłany.

I tu jeszcze js

Kod
jQuery(function($){

    $('.pi-contact-form').submit(function(){

        var $form = $(this),
            $error = $form.find('.pi-error-container'),
            action  = $form.attr('action');

        $error.slideUp(750, function() {
            $error.hide();

                $warunki = $form.find('.form-control-warunki'),

            $.post(action, {
                    warunki: $warunki.val(),
                },
                function(data){
                    $error.html(data);
                    $error.slideDown('slow');

                    if (data.match('success') != null) {
                        $warunki.val('');
                    }
                }
            );

        });

        return false;

    });
    //endregion

});


PS. Zamieszczam kody w odniesieniu tylko do pola "warunki".

Ten post edytował senior.pol 27.02.2015, 15:57:17
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 13:04