我想验证来自服务器(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工作正常
答案 0 :(得分:1)
response="valid"
更改为response=="valid"
答案 1 :(得分:0)
你已经通过用1/0替换有效/无效来解决它,所以它现在正在工作。
对于遇到同样问题并且无法用0/1替换的人:
检查response
的长度。
有时会添加空格,在这种情况下,当您在屏幕上查看值时,它看起来就像是在比较“词组”==“词组”,但您的代码将比较“词组”==“词组”(注意空格),这是不一样。
在我不得不自己处理这个问题之后,我默认使用它
response = response.trim();