2013-03-12 41 views
0

我一直在嘗試創建一個系統來檢查所選用戶名是否已被使用。我已經拿出了下面的代碼。php/jQuery檢查用戶名是否存在

function checkUsername(username,func){ 
    $.post("functions/checkUsername.php",{'username': username},function(data){ 
     if(data!='1'){ popup_alert('The username you selected already exists.','Username Exists','Close'); return false; } 
     else{ window[func](); } 
    }); 
} 

如果用戶名存在,checkUsername.php返回0,如果可用,則返回1。對此我已經進行了很多測試。我的問題是,由於某種原因,它在數據設置之前運行if語句。我在if語句之前插入了一個警報(數據),並在創建popup_alert後彈出1。

+0

你是怎麼發現它運行設置數據之前?你有沒有試過用FireBug或類似的東西來看看? – 2013-03-12 18:59:30

+0

它不會運行之前。這是成功的回調。所以這是一個非常錯誤的假設 – 2013-03-12 19:00:33

回答

1
function checkUsername(username,callback){ 
    $.post("functions/checkUsername.php",{'username': username},function(data){ 
    callback && callback(data);  
    }); 
} 

... 

checkUsername(username,function(data) { 
    if(data!='1'){ popup_alert('The username you selected already exists.','Username  Exists','Close'); return false; } 
    else{ window[func](); } 
}); 

,或者你可以用$就

function checkUsername(username,func){ 
     $.ajax({ 
     type: 'POST', 
     async: false, 
     data: {'username': username}, 
     url: 'functions/checkUsername.php', 
     success: function(data) { 
      if(data!='1'){ popup_alert('The username you selected already exists.','Username Exists','Close'); return false; } 
     else{ window[func](); } 
     }, 
     error: function() { 
      alert('Connection error!'); 
     } 
     }); 
}