2012-07-18 50 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