1

我有这个代码来添加一个用户:

$.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成功与否时执行,但它总是成功,只是结果,结果集不同。

所有帮助表示赞赏!

4

3 回答 3

0

JQuery 的 AJAX 函数会将来自 AJAX 调用的数据返回给您尝试调用该行的函数。您可以访问从result函数中获得的结果集。

这意味着您可以检查返回的数据并有条件地对其进行处理。

于 2012-07-18T08:12:13.960 回答
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
    }
}
于 2012-07-18T08:15:09.023 回答
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);            
});
于 2012-07-18T08:15:10.277 回答