所以我通常很好地弄清楚這些類型的問題,但是這個讓我完全難住,因爲一直試圖修復大約6個小時。jquery php ajax用戶名檢查功能
我有一個Web窗體,其中包含使用jQuery腳本和PHP腳本的用戶名檢查。當我第一次寫代碼時它工作的很好,現在已經完全停止工作(不知道爲什麼)。 PHP腳本是一個非常標準的mysqli查詢,它返回numrows,然後我回聲1或0到頁面取決於如果找到一個結果。這個腳本工作正常,並已獨立進行測試,如果未找到結果,則回顯1,如果找到結果,則返回0。
在jquery腳本中我有一個最小值檢查和一個沒有值檢查,這兩個工作正常。然後我的阿賈克斯調用,我收到成功的結果:函數(數據)。這也已經通過在屏幕上打印結果(數據)而獨立地進行了測試,並且當沒有記錄時在屏幕上打印1而在屏幕上顯示0時如果發現記錄,所以我知道一切都正常工作與發送的數據,我期待的結果。
所以我唯一剩下的就是我的if語句必須有一個問題,以及它如何處理返回的數據,因爲即使條件滿足時它總是跳到else。 if語句的唯一工作方式是當我自己設置變量並運行腳本時。長話短說,除了最終的if語句之外,一切都可以正常工作,無論如何,它總是跳轉到其他語句,並且說即使當我知道它沒有時,用戶名仍然可用。
我正在測試xampp。這也可能是一個問題嗎?
任何想法?提前致謝!!!
下面是代碼:JavaScript的
$(document).ready(function(){
//the min chars for username
var usermin_chars = 6;
//result texts
var checking_html = 'Checking...';
//when button is clicked
$('#username').blur(function(){
var usernameVal = $("#username").val();
if (usernameVal == '') {
$("#username_result").html('<span class="error">Please enter a username!</span>');
$('#username').removeClass();
$('#username').addClass("form_error");
}
//run the character number check
else if($('#username').val().length < usermin_chars){
//if it's bellow the minimum show characters_error text '
$('#username_result').html('<span class="error">Username must contain at least 6 characters!</span>');
$('#username').removeClass();
$('#username').addClass("form_error");
}else{
//get the username
var username = $('#username').val();
$.ajax({
type:"post",
url:"checkUsername.php",
data:"username="+username,
success:function(data){
if(data==0){$("#usename_result").html("Username already in use! Please choose another username.");
$('#username').removeClass();
$('#username').addClass("form_error");
}
else{$("#username_result").html("Username available");
$('#username_result').html('<span class="ok"><img src="../images/imgs/available.png" width="20" height="20" margin-left="5" alt="tick"></span>');
$('#username').removeClass();
$('#username').addClass("form_ok");
}
}
});
}
});
});
小提琴或沒有東西; p – 2014-10-01 12:11:55
你有什麼試圖調試?這裏沒有什麼魔力,如果它進入èlse'語句,它意味着'data!= 0'。現在通過網絡檢查器檢查您的回報,看看它是服務器發送錯誤還是客戶端代碼失敗。我想這是你的服務器,並且很可能是你的查詢... – 2014-10-01 12:14:36
你在'checkUsername.php'中的代碼是錯誤的 – 2014-10-01 12:16:38