我有这个代码来添加用户:
$.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');
只应在添加用户时执行,因此如果结果集包含此用户已存在的消息则不会执行。
我该如何解决这个问题?我首先尝试在POST成功与否时执行,但它总是成功,它只是结果,结果集是不同的。
所有帮助表示赞赏!
答案 0 :(得分:0)
JQuery的AJAX函数会将数据从AJAX调用返回到您尝试调用该行的函数。您可以访问函数中result
获得的结果集。
这意味着您可以检查返回的数据并使用它有条件地执行操作。
答案 1 :(得分:0)
你应该确保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
}
}
答案 2 :(得分:0)
$.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);
});