我有一个PHP联系表单,我正在使用jQuery的AJAX方法,但是我用“success:”函数得到了非常奇怪的结果。
这是PHP联系表:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$message = $_POST['message'];
$msg = "Name: $name\n";
$msg .= "Email: $email\n";
$msg .= "Number: $number\n\n";
$msg .= "$message\n";
$recipient = "[recipients here]";
$subject = "Contact Us - $name";
$mailheaders = "From:$email";
$success = mail($recipient, $subject, $msg, $mailheaders);
if ($success) {
echo ('Correct');
} else {
echo ('Failed');
}
header("Location: [website address here]");
?>
这是jQuery AJAX方法:
$("#contact-form").submit(function (event) {
$.ajax({
type: "POST",
url: '/lib/mailer.php',
data: {
name: $("#name").val(),
email: $("#email").val(),
number: $("#number").val(),
message: $("#message").val()
},
success: function (data) {
//$("#contact-form")[0].reset();
alert(data);
if(data === 'Correct') {
alert('Data is correct');
}
else if (data !== 'Correct') {
alert('Data is not equal to correct');
}
else {
alert('Else statement');
}
}
});
event.preventDefault();
return false;
});
现在,当我填写表单并单击“提交”时,PHP会收到正确的数据并成功发送电子邮件,并回显“正确”。弹出一个警告说“正确”。但是,不是下一个警告“数据是正确的”,而是“数据不等于正确”。
我不知道这里发生了什么。我假设我必须在某个地方犯一个非常愚蠢的错误,但似乎无法弄明白。
答案 0 :(得分:1)
您无法从ajax
电话重定向。如果您使用header
函数,它将在ajax成功中打印许多标题数据。
标题数据是您获得的Strange Result
...
删除header("Location: [website address here]");
如果您想在成功后重定向,请在ajax success
块
if (data == "Correct") {
window.location = '[website addresss here]';
}
答案 1 :(得分:1)
这个单词不匹配。 使用
if($.trim(data) == 'Correct')
希望它会有所帮助。
答案 2 :(得分:0)
从header("Location: [website address here]")
页
mailer.php
并且
$.ajax({
type: "POST",
url: '/lib/mailer.php',
data: {
name: $("#name").val(),
email: $("#email").val(),
number: $("#number").val(),
message: $("#message").val()
},
async:false, // <---- Add this fella here
success: function (data) {
//$("#contact-form")[0].reset();
alert(data);
if(data === 'Correct') {
alert('Data is correct');
}
else if (data != 'Correct') {
alert('Data is not equal to correct');
}
else {
alert('Else statement');
}
}
});