2016-06-08 25 views
0

爲了上帝的緣故,我的代碼出了什麼問題?我想,以檢查是否通過AJAX MySQL的存在價值,當一些輸入失去重點,但我總是得到同樣的回答:檢查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 { 

     } 

每次我得到「沒有」,即使我寫的是存在一定的價值。如果第一個函數發送正確的值我已經檢查,這是=(

+1

首先,刪除AJAX部分,因爲它沒有關係。您必須儘可能多地消除代碼才能定位錯誤。然後檢查'mysqli_query'調用之前'$ sql'變量的內容,嘗試手動對數據庫執行該查詢,並檢查它是否返回所期望的值。你只需要做非常簡單的調試。 –

+0

你的意思是你總是獲得成功(成功功能中沒有)我沒有看到你的問題是什麼? – nerdlyist

回答

0

success: function(serverResponse) { alert('There is not'); return false; },

請注意,在成功你把alert('there is not');。那麼,什麼是錯了嗎?你的反應運行良好。

+0

即使我在表格中輸入「There is」的值,我也會得到「There is not」。我無法獲得其他警報。 – Igor

+1

@Igor,這是正確的。你應該嘗試alert(serverResponse)。另外請注意,你的PHP文件不會回顯/返回任何內容,所以這很可能是空的。 – nerdlyist

+0

謝謝@nerdlyist,我的代碼有問題=) – Igor

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(); 
       } 
     } 
    }); 
    } 
+0

謝謝,但我發現問題=) – Igor

+0

你能指定你的問題嗎? –

+0

我已經找到了問題,sandesh。看我自己的答案。 – Igor

0

感謝@nerdlyist,我PU S IN的alert()serverResponse,我發現這一點:

if(isset($_POST["check"]) && $_POST["way"]) == 1){ 

有一個額外的parentesis這裏:$_POST["way"])

正確的是:

if(isset($_POST["check"]) && $_POST["way"] == 1){ 

謝謝大家!