检查MySQL中是否存在值失败

时间:2016-06-08 11:11:14

标签: php mysql ajax

为了上帝的缘故,我的代码出了什么问题?当一些输入失去焦点时,我试图通过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 {

      }

每次我得到"没有",即使我写了一些存在的值。我已经检查过第一个函数是否发送了正确的值,它是=(

3 个答案:

答案 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"])

谢谢大家!