AJAX联系表 - 成功和失败信息
我已经通过PHP提交了我的表单,但我正在为AJAX挣扎。提交后,错误总是出现,好像res被设置为false而不是true。我尝试了代码周围,并寻找我自己的答案,因为我做想学习,但我没有找到我所需要的。AJAX联系表 - 成功和失败信息
请允许我指出我正确的方向,我做了什么不当吗?
非常感谢你!
供您参考代码:
$('#contact_form').submit(function() {
var this_form = $(this);
$.ajax({
type: 'post',
data: this_form.serialize(),
url: 'scripts/send_email.php',
success: function(res) {
if(res == "true") {
$(this_form)[0].reset();
$(".notice").removeClass("error").text("Thank you for contacting us!").addClass("success").fadeIn("fast");
} else {
$(".notice").text("Please check all fields and try again.").addClass("error").fadeIn("fast");
}
}
});
});
尝试问:
if(res == true)
代替。同时,为了避免这种问题的好方法是通过萤火虫或铬调试器来调试您的JavaScript,如果你使用的是Chrome,可以将这个行添加到您的代码:
debugger;
if(res == "true")
和JavaScript将停止有这么你可以检查变量,看看发生了什么。你可以打开它的选项 - >工具 - >开发人员工具 - >脚本“。
希望这有助于:)
看来,贵的道理比较是由于res
代表的值返回false。您正在检查以确保它是一个值为“true”的字符串。如果不是,则触发其他代码。
您的success
属性只有在AJAX传输成功时才会执行。您需要将比较检查设置为send_email.php
的所需输出,即“成功!”。或'失败!'以表明正确的处理。
成功(数据,textStatus,jqXHR)
函数。如果请求成功被调用。该函数获得三个参数: 参数:从服务器返回的数据,根据 格式化dataType参数;描述状态的字符串;和jqXHR (在jQuery 1.4.x,XMLHttpRequest中)对象。从jQuery 1.5开始, 成功设置可以接受一组函数。每个函数将依次调用 。
有关在jQuery中处理AJAX请求的其他信息,请参阅docs。
success: function(res) {
if (res == "Success!") {
$(this_form)[0].reset();
$(".notice").removeClass("error").text("Thank you for contacting us!").addClass("success").fadeIn("fast");
} else {
$(".notice").text("Please check all fields and try again.").addClass("error").fadeIn("fast");
}
}
非常感谢您! – 2012-07-10 19:09:53
不客气。让我知道你是否需要额外的协助/解释这个问题。 – RobB 2012-07-10 19:15:21
在你send_email.php文件,回声 “成功”,如果它成功。
然后修改您的AJAX调用就像这样:
success: function(data) {
if (data == "success") {do stuff} else {do failure stuff}
}
非常感谢! – 2012-07-10 19:09:45
没问题,欢迎来到:) – Hassek 2012-07-10 19:11:07