Nie wiem kompletnie dlaczego mail dochodzi, ale bez danych zawartych w zmiennych post. To jest moja pierwsza styczność z AJAX'em i za bardzo nie wiem gdzie jest błąd w poniższym skrypcie, który psiałem na podstawie jakiegos tutorialu z sieci.
plik html z formularzem + js
<form id="formail" action="" method="post"> <?php echo $blad_wysylania; ?>
<div id="wynik_wysylania"></div> <div><input type="submit" id="e_wyslij" name="e_wyslij" value="Wyślij e-mail" /></div> <script type="text/javascript">
$("#e_wyslij").click(function(){
var valid = '';
var name = $("#e_nazwa").val();
var mail = $("#e_mail").val();
var subject = $("#e_temat").val();
var text = $("#e_tresc").val();
if (name.length<1) {
valid += '<br />Błędny podpis.';
}
if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
valid += '
<br />Błędny Email.';
}
if (subject.length<1) {
valid += '<br />Błędny tytuł.';
}
if (text.length<1) {
valid += '<br />Błędna treść.';
}
if (valid!='') {
$("#wynik_wysylania").fadeIn("slow");
$("#wynik_wysylania").html("Error:"+valid);
}
else {
var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text;
$("#wynik_wysylania").css("display", "inline-block");
$("#wynik_wysylania").html("Wysyłanie wiadomości .... ");
$("#wynik_wysylania").fadeIn("slow");
//setTimeout("send('"+datastr+"')",2000);
setTimeout("send('" + datastr + "')",1000);
}
return false;
});
function send(datastr){
$.ajax({
type: "POST",
url: "http://nazwa_strony.pl/mail.php",
data: datastr,
cache: false,
success: function(html){
$("#wynik_wysylania").fadeIn("slow");
$("#wynik_wysylania").html("Wysłane!");
//setTimeout('$("#wynik_wysylania").fadeOut("slow")',2000);
setTimeout('$("#wynik_wysylania").fadeOut("slow")',1000);
}
});
}
plik: mail.php
<?php
$mail = $_POST['e_mail'];
$name = $_POST['e_nazwa'];
$subject = $_POST['e_temat'];
$text = $_POST['e_tresc'];
$to = "mojmail@tlen.pl";
$message ="You received a mail from ".$mail;
$message .="Text of the message : ".$text;
if(mail($to, $subject,$message)){ echo "mail successful send"; }
else{
echo "theres some errors to send the mail, verify your server options"; }
?>