我有一个模态对话框表单,可以将数据提交给表格。我想向用户提供有关提交成功/失败的一些反馈,但成功处理程序没有解雇。
我的代码是
$.ajax({
type: "POST",
url: "includes/phpscripts.php?action=submitWiki",
data: {"name": location, "location": locationName, "text": locationText, "user": userId},
beforeSend: function(x){
if (x && x.overrideMimeType){
x.overrideMimeType("application/json;charset=UTF-8");
}
},
async: false
}).done(function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
});
另一个版本将done
中的if / else块定义为
success: function(data){
if (data == "failure"){
$("#submissionFailure").dialog("open");
} else {
$("#submissionSuccess").dialog("open");
var count= 3;
var id= setInterval(function(){
count--;
if (count == 0)
$("#submissionSuccess").dialog("close");
}, 1000);
}
}
在Firebug中,由于echo语句,我可以清楚地看到请求的返回是success
,但是跳过了成功函数。我已经在done
行直接设置了断点,一切都被跳过了。
此外,这些帖子正被记录到数据库中。
答案 0 :(得分:1)
你缺少的“dataType”,默认为HTML / String或XML,也许我不记得哪一个是我的头脑,但是假设你使用JSON,如果dataType:没有设置为JSON就赢了'将您的后端反馈解释为有效,并且基本上会忽略它。所以在type: "POST"
下dataType:"json"
答案 1 :(得分:0)
像Chris ^告诉你的那样,添加数据类型,然后更改此行
data: {"name": location, "location": locationName, "text": locationText, "user": userId}
到那个
data: {name: "location", location: "locationName", text: "locationText", user: "userId"}
引号应该在第二个参数附近,除非它们是变量。第一个参数可以保留。