Witam,
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">
<input name="name" id="name" type="text" value="imię *" /> <input name="nazwisko" id="nazwisko" type="text" value="nazwisko" /> <input name="telefon" id="telefon" type="text" value="telefon" /> <input name="email" id="email" type="text" value="e-mail *" />
<textarea name="message" id="message" cols="5" rows="5" >treść wiadomości *
</textarea> <input name="newsletter" id="newsletter" type="checkbox" checked="checked" /> <label>*Zapisz się na bezpłatny Newsletter
</label>
<div class="sending">Wysyłanie...
</div> <div class="message-sent">Wiadomość wysłana.
</div>
<input type="submit" name="submit" id="submit" value="Wyślij wiadomość" />
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 (isset($_POST['newsletter'])) {
if ($_POST['newsletter'] == 'on')
{
$Newsletter = "Wyrażam zgodę na bezpłatny newsletter";
}
if ($_POST['newsletter'] == 'off')
{
$Newsletter = "Nie wyrażam zgody nbn";
}
}
if (empty($_POST['newsletter'])) {
$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>';
if( @mail( $TargetEmail, "Wiadomość z formularza", $MailMessage, $headers ) ) { $content = true;
}
else
{
$content = false;
}
?>
Z góry bardzo dziękuję za odpowiedź!
Moodey
Ten post edytował Moodey 16.07.2013, 01:36:25