2016-06-08 104 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){ 

谢谢大家!