使用PHP post请求无法使用jQuery从数据库获得响应

时间:2014-03-24 22:25:13

标签: php jquery ajax

我无法让这个脚本工作。我试着警告用户输入的登录是否可用。但是我无法管理这个脚本:

$( "#myRegForm" ).submit(function( event ) {

    var errors = false;
    var userAvi = true;
    var loginInput = $('#login').val();

    if( loginInput == ""){
        $("#errorArea").text('LOGIN CANNOT BE EMPTY!');
        $("#errorArea").fadeOut('15000', function() { });
        $("#errorArea").fadeIn('15000', function() { });

        errors = true;
    }
    else if(loginInput.length < 5 ){
        $("#errorArea").text('LOGIN MUST BE AT LEAST 5 CHARACTERS!');
        $("#errorArea").fadeOut('15000', function() { });
        $("#errorArea").fadeIn('15000', function() { });
        errors = true;
    }
    else if (loginInput.length >=5) {
        $.post('checkLogin.php', {login2: loginInput}, function(result) {

            if(result == "0") {
                alert("this");              
            }
            else {
                alert("that");
            }
        });                
    }

    if (errors==true) {
        return false;
    }
});

一切正常,直到loginInput.length >=5阻止。所以我认为从PHP文件中获取答案存在问题,但我无法处理它,尽管我尝试了很多不同的方法。这是checkLogin.php的文件(请注意,jQuery脚本和PHP文件位于同一文件夹中):

<?php
include ("bd.php");

$login2 = mysql_real_escape_string($_POST['login2']);

$result = mysql_query("SELECT login FROM users WHERE login='$login2'");

if(mysql_num_rows($result)>0){  
    //and we send 0 to the ajax request  
    echo 0;     
}   

else{  
    //else if it's not bigger then 0, then it's available '  
    //and we send 1 to the ajax request  
    echo 1;  
}  

?>

2 个答案:

答案 0 :(得分:0)

您实际上是在发送字符串'loginInput'

变化

$.post('checkLogin.php', {login2: 'loginInput'}, function(result) {

$.post('checkLogin.php', {login2: loginInput}, function(result) {

<强> 修改

我现在只是注释掉除了以下内容之外的所有内容,看看它是否至少有效

$.post('checkLogin.php', {login2: 'loginInput'}, function(result) { // put loginInput back in quotes

       alert('#'+result+'#');  // # to check for whitespace
    });   

答案 1 :(得分:0)

<?php
include ("bd.php");

$login2 = mysql_real_escape_string($_POST['login2']);

$result = mysql_query("SELECT login FROM users WHERE login='$login2'");

if(mysql_num_rows($result)>0){  
    //and we send 0 to the ajax request  
    echo "0"; // for you to use if(if(result == "0") you should send a string    
} else {
    //else if it's not bigger then 0, then it's available '
    //and we send 1 to the ajax request
    echo "1";  

} ?&GT;