2012-07-18 59 views
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成功或不成功时执行,但它总是成功的,它只是结果,结果集是不同的。

所有帮助表示感谢!

+0

什么信息你回来的对您的要求作出回应? – Dpolehonski 2012-07-18 08:11:11

+1

您是否尝试过在回调中检查'result',并在if语句中使用它? – 2012-07-18 08:11:19

回答

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);    
}); 
+0

谢谢,我用这种方法检查结果中的特定字符串,并将其修复! – Borniet 2012-07-19 09:08:33

0

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

这意味着您可以检查返回的数据并有条件地使用它。

0

你应该确保ajax/aj_adduser.php中的php文件返回一个状态参数。

是这样的:

if ($useradded){ 
    $rt->status = "useradded"; 
    $rt->result = $result; 
}else{ 
    $rt->status = "failed"; 
} 
echo json_encode($rt); 

你可以改变你的$。员额调用$ .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 
    } 
} 
+0

喜欢这种固定的方式,虽然对于这个特定的项目,我选择其他答案,我会保留这个在我的“名单”!谢谢! – Borniet 2012-07-19 09:07:32