Jquery:根据$.post()的返回做不同的事情
我有以下代码来添加用户:Jquery:根据$.post()的返回做不同的事情,jquery,Jquery,我有以下代码来添加用户: $.post('ajax/aj_adduser.php', $("form#adduserform").serialize(), function(result) { disablePopup(); $('#addsuccess').delay(200).fadeToggle('slow').delay(2000).fadeToggle('slow'); $('div.mainadmin').html(result);
$.post('ajax/aj_adduser.php', $("form#adduserform").serialize(), function(result) {
disablePopup(); $('#addsuccess').delay(200).fadeToggle('slow').delay(2000).fadeToggle('slow');
$('div.mainadmin').html(result);
});
它几乎可以正常工作:-
问题是,线路:
$('#addsuccess').delay(200).fadeToggle('slow').delay(2000).fadeToggle('slow');
应仅在添加用户时执行,因此在结果集包含该用户已存在的消息时不应执行
我该如何解决这个问题?我第一次尝试在帖子成功与否时执行,但它总是成功,这只是结果,结果集不同
感谢大家的帮助 JQuery的AJAX函数将AJAX调用中的数据返回到您试图调用该行的函数。您可以访问从函数的结果中获得的结果集
这意味着您可以检查返回的数据,并有条件地对其执行操作。您应该确保ajax/aj_adduser.php中的php文件返回一个状态参数 大概是这样的:
if ($useradded){
$rt->status = "useradded";
$rt->result = $result;
}else{
$rt->status = "failed";
}
echo json_encode($rt);
您可以将$.post调用更改为$.getJSON,并按如下方式检查结果:
$.getJSON('ajax/aj_adduser.php', $("form#adduserform").serialize(), function(result) {
if (result.status = "useradded"){
// do something
$('div.mainadmin').html(result.result);
}else{
// don't do anything
}
}
作为对您请求的响应,您返回了哪些信息?您是否尝试过在回调中检查结果,并在if语句中使用这些信息?喜欢这种修复方法,尽管对于这个特定的项目,我选择了另一个答案,我会将此答案保留在我的列表中!非常感谢。谢谢,我使用这个方法来检查结果中的特定字符串,并将其修复!
$.post('ajax/aj_adduser.php', $("form#adduserform").serialize(), function(result) {
disablePopup();
if(result.YourMessage == ...){
$('#addsuccess').delay(200).fadeToggle('slow').delay(2000).fadeToggle('slow');
}
else{ ... }
$('div.mainadmin').html(result);
});