[英]Check if value exist in MySQL failing
看在上帝的份上,我的代碼有什么問題? 當某些輸入失去焦點時,我試圖通過AJAX檢查MySQL中是否存在值,但是我總是得到相同的響應:
腳本:失去它
$(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 {
}
每當我寫“沒有”時,即使我寫了一些存在的值。 我已經檢查了第一個函數是否正在發送正確的值,並且它是=(
success: function(serverResponse) { alert('There is not'); return false; },
注意,成功放置了alert('there is not');
。 那怎么了? 您的回應運行良好。
我已經稍微修改了您的腳本。 說明:由於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();
}
}
});
}
多虧了@nerdlyist,我在alert()
中將serverResponse
拖后發現了:
if(isset($_POST["check"]) && $_POST["way"]) == 1){
這里有一個額外的括號: $_POST["way"])
。
正確的是:
if(isset($_POST["check"]) && $_POST["way"] == 1){
謝謝你們!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.