为了上帝的缘故,我的代码出了什么问题?当一些输入失去焦点时,我试图通过AJAX检查MySQL中是否存在值,但我总是得到相同的响应:
SCRIPT:失去
$(function() {
$('#cnpj').focusout(function() {
var a = $('#cnpj').val();
if(verificar(a) === true){$('#cnpjerror').show();}
});
$('#email').focusout(function() {
var b = $('#email').val();
if(verificar(b) === true){$('#emailerror').show();}
});
})
function verificar(x) {
$.ajax({
url: 'verify.php',
type: 'post',
data: 'check='+x+'&way=1',
success: function(serverResponse) {
alert('There is not');
return false;
},
error: function(serverResponse) {
alert('There is');
return true;
}
});
}
VERIFY.PHP:
if(isset($_POST["check"]) && $_POST["way"]) == 1){
$check = $_POST["check"];
$sql = "SELECT ID FROM Table1 WHERE Email = '$check' UNION SELECT ID FROM Table2 WHERE Email = '$check'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
header("HTTP/1.0 404 Not Found");
die;
} else {
}
每次我得到"没有",即使我写了一些存在的值。我已经检查过第一个函数是否发送了正确的值,它是=(
答案 0 :(得分:0)
success: function(serverResponse) {
alert('There is not');
return false;
},
请注意,您成功放了alert('there is not');
。那有什么不对?你的回答运行良好。
答案 1 :(得分:0)
我已经修改了一点脚本。说明:由于ajax是异步调用,因为您要执行的任何脚本需要成功返回或错误函数本身。
$(function() {
$('#cnpj').focusout(function() {
var a = $('#cnpj').val();
verificar(a, "cnjp")
});
$('#email').focusout(function() {
var b = $('#email').val();
verificar(b, "email");
});
})
function verificar(x, reference) {
$.ajax({
url: 'verify.php',
type: 'post',
data: 'check='+x+'&way=1',
success: function(serverResponse) {
},
error: function(serverResponse) {
if(reference== "cnjp") {
$('#cnpjerror').show();
}
if(reference== "email") {
$('#emailerror').show();
}
}
});
}
答案 2 :(得分:0)
感谢@nerdlyist,我在id
中推了serverResponse
,我发现了这个:
alert()
这里有一个额外的麻痹:if(isset($_POST["check"]) && $_POST["way"]) == 1){
。
正确的是:
$_POST["way"])
谢谢大家!