Javascript PHP验证程序从AJAX获取0

Javascript PHP验证程序从AJAX获取0,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,本质上,我正在尝试向PHP脚本发送电子邮件,以使用ajax和HTML中的onKeyUp事件检查可用性 到目前为止,在过去的几个小时里,我已经尝试了所有我能想到的方法,试图解决这个问题,但没有任何效果 注意:在我的源html中,脚本位于中 我在下面附上了我的代码 var checkEmail=function(){ $.ajax({ 方法:“POST”, url:“检查电子邮件”, 数据类型:“json”, 数据:{ “email”:$(“#email”).val() }, 成功:功能(响应){

本质上,我正在尝试向PHP脚本发送电子邮件,以使用ajax和HTML中的onKeyUp事件检查可用性

到目前为止,在过去的几个小时里,我已经尝试了所有我能想到的方法,试图解决这个问题,但没有任何效果

注意:在我的源html中,脚本位于中

我在下面附上了我的代码

var checkEmail=function(){
$.ajax({
方法:“POST”,
url:“检查电子邮件”,
数据类型:“json”,
数据:{
“email”:$(“#email”).val()
},
成功:功能(响应){
如果(响应==“0”| |响应==0){
document.getElementById(“email”).style.border=“1px实心rgba(0,255,0,0.9)”;
控制台日志(“良好”);
}else if(响应==“2”| |响应==2){
document.getElementById(“email”).style.border=“1px纯黄色”;
控制台日志(“响应错误”);
}否则{
document.getElementById(“email”).style.border=“1px实心rgba(255,0,0,0.9)”;
控制台日志(“坏”);
}
}
});
}







问题很可能出在
数据类型属性上。您编写了
json
,但正在回显字符串

你有两个选择:

1) 或者像这样返回一个json(在php中)

然后在javascript中得到如下值

if (parseInt(response.result) === 1) {
2) 第二个选项是将
数据类型更改为
html
,然后在javascript中,我建议您使用此代码来比较:

if (parseInt(response) === 0) {

=
比较值和类型(字符串、数组、整数等)。通过在响应上使用
parseInt
,可以将其转换为整数,确保比较不会因为有字符串而失败。

您需要一个JSON,因此jquery解析并返回一个对象,这是针对字符串进行的测试。也许可以尝试数据类型raw?Url应该是
Url:'checkEmail.php',
我已经做了第二个选项,我的php仍然只收到0。@Brayden这意味着问题出在你的php代码上。您正在将
=
与字符串进行比较。将此
$stmt->num_rows>=“1”
更改为此
$stmt->num_rows>=1
。通过回显值并检查它,确保确实返回了一些内容。我现在已经完成了这项工作,似乎没有设置$\u POST['email'],因为只有2个被回显。实际上,我的站点没有更新javascript,并且测试时的数据类型仍然是“原始的”。@Brayden尝试回显POST包含的内容,如此print\r($\u POST);
if (parseInt(response) === 0) {