簡體   English   中英

檢查MySQL中是否存在值失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM