我已经束手无策了,希望有人能帮助我。我接替某人并一直尝试通过 ajax POST 发送我的表单,但我一直使用的 mail.php 没有发送,即使我收到 200 OK。我在 conetix 上进行了测试,它已发送,但我一定错过了一些东西。任何帮助是极大的赞赏。这是相关脚本:
$("#send").click(function(){
var valid = '';
var isr = ' is required!</p>';
var name = $("#name").val();
var mail = $("#email").val();
var messaggio = $("#message").val();
if (name.length<1) {
valid += '<p>*Valid name'+isr;
}
if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
valid += '<p>*Valid email address'+isr;
}
这是我的 php:
<?php
/// Here we get all the information from the fields sent over by the form.
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = 'xxx@xxx.com';
$subject = 'Contact Us Form Submission';
$message = 'FROM: '.$name.' Email: '.$email.'Message: '.$message;
$headers = 'From: xxx@xxx.com' . "\r\n";
?>
再说一次,任何帮助都会让我不至于流泪。
if (valid!='') {
$("#response").fadeIn("slow");
$("#response").html(valid);
$('#send').removeClass('normal').addClass('error-button');
$('#send').val('');
setTimeout(function() {
$('#send').removeClass('error-button').addClass('normal');
$('#send').val('send');
$("#response").fadeOut("slow");
}, 3000);
}
else {
var datastr ='name=' + name + '&mail=' + mail + '&messaggio=' + encodeURIComponent(messaggio);
setTimeout("send('"+datastr+"')",1000, $('#send').val('wait...'));
}
return false;
});
}(jQuery))
function send(datastr){
$.ajax({
type: "POST",
url: "phptest.php",
data: datastr,
cache: false,
success: function(html){
$('#send').removeClass('normal, error-button').addClass('send-email');
$('#send').val('');
}
});
}
最佳答案
您的数据字符串如下所示:
'&mail=' + mail
'&messaggio='
当你的 PHP 抓取这个时:
$_POST['email'];
$_POST['message'];
“邮件”!=“电子邮件”和“消息”!=“消息”
关于javascript - 我的 script.js 和 mail.php 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34339810/