2016-05-01 64 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); 
});