Ajax调用总是运行成功函数

时间:2015-01-21 08:33:21

标签: php jquery ajax

我想验证来自服务器(php)的user_id和手机号码。当我输入错误的user_id和手机号码时,每次ajax执行成功(如果)部分而不是其他部分。

我的ajax

         <script>
          $(document).ready(function() {
          $("#b").click(function(){
          var user_id=$('#user_id').val();
          var mobile=$("#mobile").val();
                    $.ajax({
                            type:"POST",
                            url:"http://localhost/test.php",
                            data:{user_id:user_id, mobile:mobile},
                              success:function(response){
                                if(response="valid"){
                                    alert(response);
                                    window.location='https://www.google.co.in';
                                }
                                else{
                                    alert("invalid");
                                }                       

                              },
                              error:function(response){
                                alert("error");
                              }
                          });       

                });  
              });

</script>

我的PHP代码

 <?php
  $user_id=$_POST['user_id'];
  $mobile=$_POST['mobile'];
  $con=@mysql_connect("localhost","root","")or die('connection failed: ' . mysql_error());
  $db=mysql_select_db("sorethroat");  
  $result = mysql_query("SELECT * FROM `myfieldmembers` where `employee_id`='".$user_id."' && `mobile`='".$mobile."'");
    if($result === FALSE) { 
        die(mysql_error()); // TODO: better error handling
    }
    if(mysql_num_rows ($result)>0) {
      echo "valid";
    } else {
      echo"invalid";
    }

 ?>
服务器端的

在硬编码后这个php工作正常

2 个答案:

答案 0 :(得分:1)

response="valid"更改为response=="valid"

答案 1 :(得分:0)

你已经通过用1/0替换有效/无效来解决它,所以它现在正在工作。

对于遇到同样问题并且无法用0/1替换的人:

检查response的长度。 有时会添加空格,在这种情况下,当您在屏幕上查看值时,它看起来就像是在比较“词组”==“词组”,但您的代码将比较“词组”==“词组”(注意空格),这是不一样。

在我不得不自己处理这个问题之后,我默认使用它

response = response.trim();