如果 PHP 成功返回,我会处理它,但就错误而言,我对我应该做什么有点困惑。
error:
由于以下代码不起作用,我正在考虑做的事情是在我的 PHP 中将邮件函数设置为等于变量以保存函数的结果。然后在我的 jQuery 中,测试变量的结果以确定它是否为真。
然而,这一切都会发生在success:
似乎显然应该处理这个错误的情况下。
我如何让它success:
正确处理成功并显示一条消息,同时error:
通过返回错误来处理错误,然后我将能够将它们显示给用户。
如果你能告诉我我的.html()
功能是否做得好,还有加分?它的格式看起来很混乱,但我似乎想不出更好的方法来做到这一点。
jQuery:
// Following section submits form without refreshing page
var dataString = "name=" + nameVal + "&email=" + emailVal + "&message=" + messageVal;
$.ajax({
type: "POST",
url: "mail.php",
data: dataString,
success: function() {
$(".contact-form").hide();
$(".alt-contact").hide();
// Inserts divs making up the success message for the form submission
$(".contact-form").html("<div class='success-message'><div class='success-image'></div><div class='success-title'>Success! The message has been sent!</div><div class='success-body'>I'll get back to you right away.</div></div>");
$(".contact-form").fadeIn(500);
}
error: function() {
$(".contact-form").hide();
$(".alt-contact").hide();
// Inserts divs making up the success message for the form submission
$(".contact-form").html("<div class='error-message'><div class='error-image'></div><div class='error-title'>Success! The message has been sent!</div><div class='error-body'>I'll get back to you right away.</div></div>");
$(".contact-form").fadeIn(500);
}
});
return false;
PHP:
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$recipient = 'me@christianselig.com';
$subject = 'Message From Website';
$body = '<b>From:</b> ' . $name . '\n\n' . $message;
$headers = 'From: ' . $email . '\r\n';
$headers .= 'Content-type: text/html; charset=UTF-8' . '\r\n';
mail($recipient, $subject, $body, $headers);
?>