2016-05-01 59 views
0

我想通過使用jQuery的$ .post來檢查數據庫中用戶名的可用性。 我不知道如果路徑是錯誤的或PHP腳本是錯誤的,但它一直返回數據的空白或null也許。這是爲什麼?

JS文件:

$(document).ready(function(){ 


$("#signup_username").bind("keyup blur",function(){ 
    $("#loading_img_username").show(); 
    var prompt_username = $("#signup_username").val(); 
    if(prompt_username != ''){ 

     $.post('php/check.php', {username: prompt_username} , function(data){ 
      $("#signup_username_status").html(data); 
      $("#loading_img_username").hide(); 

     }).error(function(){ 
      $("#loading_img_username").hide(); 
      $("#signup_username_status").html("<span style='color:#cc2000;'><i class='glyphicon glyphicon-remove'></i> Cannot verify username availability.</span>"); 
     }); 
    } else{ 
     $("#signup_username_status").html("<span style='color:gold;'><i class='glyphicon glyphicon-info-sign'></i> Provide your username.</span>"); 
     $("#loading_img_username").hide(); 
    } 


    }); 
}); 

php文件:

<?php 
$user = $_POST['username']; 
    echo $user; 

我知道,不管你提示在輸入字段:

#signup_username
將是一個以數據爲傳遞一個回調函數at $ .post

+0

你看了看控制檯中的呼叫嗎?如果你知道自己的路徑是否正確,如果它找不到資源會給你一個錯誤。接下來檢查發送給服務器的內容(在發佈請求的標題中)。你也可以在php中打印所有的$ _POST變量,並查看是否列出了「用戶名」。 – scrappedcola

+0

找到了。問題出在路徑名中。但我不知道要簡化這個網址:** http://localhost/project/app/views/login_register/js/php/check.php** in javascript 對不起,我是一個初學者。 –

回答

0

建議1:

jQuery他的post函數使用數據類型來接收信息,在這一刻你正在使用數據類型「text」。我應該使用XML或JSON,因爲它更清晰可讀。

$.post('url', {username: prompt_username}, function(data) { 
    $("#signup_username_status").html(data.username); 
    $("#loading_img_username").hide(); 
}, 'JSON'); 

你需要編碼在PHP中的數據,如果你這樣做:

$user = $_POST['username']; 
die(json_encode(array('username'=>$user))); 

建議2:

請問您的jQuery POST請求不起作用?使用.error函數進行調試,如果您知道如何使用它,它就會很方便!這裏是一個如何輸出錯誤的例子:

$.post('url', {username: prompt_username}, function(data) { 
    $("#signup_username_status").html(data.username); 
    $("#loading_img_username").hide(); 
}, 'JSON').error(function(a,b,c) { 
    console.log(a,b,c); 
});