jquery php ajax用户名检查功能

时间:2014-10-01 12:07:42

标签: javascript php jquery ajax mysqli

所以我通常很擅长弄清楚这些类型的问题,但是这个问题让我完全陷入困境,因为现在已经尝试修复了大约6个小时。

我有一个网页表单,其中包含使用jquery脚本和php脚本的用户名检查。当我第一次编写代码时它工作正常,现在已完全停止工作(不明白为什么)。 php脚本是一个非常标准的mysqli查询,返回numrows然后我回显1或0到页面,具体取决于是否找到了结果。这个脚本工作正常,并且已经独立测试了它,如果没有找到结果则回声1,如果找到结果,则返回0。

在jquery脚本中,我有一个最小值检查和一个没有值检查,两者都工作正常。然后我的ajax调用,我收到成功的结果:函数(数据)。这也已经通过在屏幕上打印结果(数据)独立测试,并且当没有记录时在屏幕上打印1,如果找到记录则在屏幕上显示0,所以我知道所有内容都与发送的数据一致正常结果我期待。

所以我唯一剩下的就是我的if语句必须存在问题以及它如何处理返回的数据,因为即使条件满足它总是会跳到其他地方。 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");
                    }
                }
             });

        }  
    });  

});

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了答案。当网站接近完成时,我已经浏览了所有页面,并确保每个页面都有一个SEO标题,包括checkUser页面。页面标题正在与数据一起发送并混淆if语句。当我测试功能时,如果我在一个范围内放置(数据)它只显示0或1,但在firebug中查看它显示响应为0或1加上页面标题。感谢那些看过它的人。