我想验证服务器(PHP)的user_id和手机号码。 当我输入错误的user_id和手机号码时,所以每次 Ajax 都是执行成功 (if) 部分而不是其他部分。
我的阿贾克斯是
<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 工作正常
response="valid"
更改为response=="valid"
您已经通过将有效/无效替换为 1/0 来解决它,因此它现在可以工作了。
对于遇到相同问题且无法替换为 0/1 的人:
检查response
的长度。有时会添加空格,在这种情况下,当您在屏幕上检查值时,看起来就像您在比较"短语"=="短语",但您的代码将比较"短语"=="短语"(注意空格),这是不一样的。
在不得不自己处理这个问题之后,我默认使用它
response = response.trim();