Mam problem z formularzem. Otóż muszę dodać checkbox do już istniejącego formularza. Problemem jest jego zagnieżdżenie we wcześniej napisanym kodzie jQuery współpracującym z plikiem php. Nie wiem jak zrobić by ten checkbox zwracając poprawną informację nie wymuszał przejścia do pliku php (nowe białe okno o tresci "1").
Obecnie stanąłem w punkcie albo zwracania przez formularz odpowiedniej treści i przechodzenia do pliku php zamiennym ze zwracaniem złej informacji ale poprawnym działaniu wizualnym owego formularza.
Mówiąc wprost to chce aby przy zaznaczonym checboxie przechodziła informacja "Wyrażam zgodę", a przy odznaczonym "Nie wyrażam zgody" - potrzebuje pomocy bo sam napotkałem na mur.
<form action="send.php" method="post" class="foot-form"> <fieldset> <div> <input name="name" id="name" type="text" value="imię *" /> </div> <div> <input name="nazwisko" id="nazwisko" type="text" value="nazwisko" /> </div> <div> <input name="telefon" id="telefon" type="text" value="telefon" /> </div> <div> <input name="email" id="email" type="text" value="e-mail *" /> </div> <div> </div> <div> <input name="newsletter" id="newsletter" type="checkbox" checked="checked" /> </div> <div> </div> <div> <input type="submit" name="submit" id="submit" value="Wyślij wiadomość" /> </div> </fieldset> </form>
var inputs = new Array(); inputs["name"] = "imię *"; inputs["nazwisko"] = "nazwisko"; inputs["telefon"] = "telefon"; inputs["email"] = "e-mail *"; inputs["message"] = "treść wiadomości *"; inputs["newsletter"]; $("#name,#nazwisko,#telefon,#email,#message").focus(function() { if( $(this).val()==inputs[$(this).attr("id")]) $(this).val(""); }).blur(function() { if($(this).val()=="") $(this).val(inputs[$(this).attr("id")]); }); $("#submit").click(function() { name = $("#name").val(); nazwisko = $("#nazwisko").val(); telefon = $("#telefon").val(); email = $("#email").val(); message = $("#message").val(); newsletter = $("#newsletter"); var mail_match =/^[^@]+@[^@]+.[a-z]{2,}$/; if((email.search(mail_match) == -1)) { alert("Proszę podać poprawny adres e-mail"); return false; } if (name == '' || name == 'imię' || message == 'treść wiadomości' || message == ''){ alert('Musisz podać imię i treść wiadomości...'); return false; } else { $(".sending").slideDown(); $.ajax({ url: "send.php", type: "POST", data: { name: name, nazwisko: nazwisko, telefon: telefon, email: email, message: message, newsletter: newsletter }, success: function(data) { if(data == true) { $(".sending").slideUp(); $(".message-sent").slideDown(); } else { alert("Wstąpił błąd podczas wysyłania wiadomośc. Proszę spróbować ponownie."); } } }); return false; } });
<?php // zmienne przesłane przez AJAX metodą POST $Name = $_POST['name']; $Nazwisko = $_POST['nazwisko']; $Phone = $_POST['telefon']; $SenderEmail = $_POST['email']; $MailContent = $_POST['message']; $Newsletter = $_POST['newsletter']; $TargetEmail = "example@mail.pl"; { if ($_POST['newsletter'] == 'on') { $Newsletter = "Wyrażam zgodę na bezpłatny newsletter"; } if ($_POST['newsletter'] == 'off') { $Newsletter = "Nie wyrażam zgody nbn"; } } { $Newsletter = "Nie wyrażam zgody"; } $headers = "MIME-Version: 1.0" . "\r\n"; $headers = 'Content-type: text/html; charset=utf-8' . "\r\n"; $Od = "=?UTF-8?Q?".$Name." ".$Nazwisko."?="; $headers .= "From: " . $Od . " <" . $SenderEmail . ">\r\n"; $MailMessage = ' <!doctype html> <html> <head> <meta charset="utf-8"> <title>Wiadomość z formularza</title> <style type="text/css"> p { font-family: Arial, Helvetica, sans-serif; font-size: 12px; } </style> </head> <body> <p></p><br /><br /> <hr><br /><br /> <p>'. $MailContent .'</p><br /><br /> <p><b>Wiadomość od:</b> '.$Name.' '.$Nazwisko.'<br /> <b>Adres zwrotny:</b> '.$SenderEmail.'<br /> <b>Telefon:</b> '.$Phone.'<br /> <b>Newsletter:</b> '.$Newsletter.'<br /> </body> </html>'; $content = true; } else { $content = false; } exit; ?>
Z góry bardzo dziękuję za odpowiedź!
Moodey