Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax调用输出相同的消息_Javascript_Php_Mysql_Ajax - Fatal编程技术网

Javascript Ajax调用输出相同的消息

Javascript Ajax调用输出相同的消息,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,下面我有一个ajax调用,它检查客户表中是否存在卡号,但是,在这两种情况下,我得到的响应都是,即使卡号存在,它也不存在。因此,这两条最终消息都将是不存在的 agent_reload.php <script type="text/javascript"> $(document).ready(function() { $("#card_number").change(function() { var card_n

下面我有一个ajax调用,它检查客户表中是否存在卡号,但是,在这两种情况下,我得到的响应都是,即使卡号存在,它也不存在。因此,这两条最终消息都将是不存在的

agent_reload.php

<script type="text/javascript">
    $(document).ready(function()
    {
        $("#card_number").change(function() 
        { 
            var card_num = $("#card_number").val();

            $.ajax({  
                type: "POST",  
                url: 'CheckUserCardNumber.php',  
                data: "card_number="+card_number,  
                success: function(msg){            
                    var Result = $.trim(msg);

                    if(Result === "does_not_exists")
                    { 
                        alert("does not exist");
                    }  
                    else  
                    {  
                        alert("exists");
                    }  
                } 
            }); 

            return false;
        });
    });
</script>
CheckCardNumber.php

<?php
include('dbconnection.php');
if(isset($_POST['card_number']))
{
    $Card_Number = $_POST['card_number'];
    $sql = "select * from customers where card_id='$Card_Number'";
    $Result = $db->query($sql);

    if ($Result->num_rows != 0)
    {
        echo "exists";
    }
    else
    {
        echo "does_not_exists";
    }
}

看起来您将var设置为card_num,但将card_num传递给ajax:

var card_num = $("#card_number").val();
.
.
.
data: "card_number="+card_number,
小费 一个好的编程实践是使用camelcase命名和适当的缩进

// <!-- CheckCardNumber.php --> 
<?php
if (isset($_POST['card_number'])) {

  include('dbconnection.php');

  $cardNumber = $_POST['card_number'];
  $sql        = "SELECT * from customers where card_id= '$cardNumber'";
  $result     = $db->query($sql);

  echo $result->num_rows > 0 ? 'Exists' : 'Does not exist.';
}
此外,请始终使用PDO/Prepared MySQLI。

您是否在浏览器的开发人员工具中查看了请求/响应?此外,您还可以从userinput中获取一个字符串,并将其直接用于SQL。高度危险的测试是可以的,但不要这样装运。SQL注入您有一个输入错误。var card_num,然后+card_num您必须首先确保ajax请求有成功的结果。成功函数似乎没有正确处理,请最好将结果更改为结果。@BilelKabtni-请将结果更改为结果。-为什么这样更好?这只是一个偏好和代码风格的问题。一个好的编程实践是使用camelcase命名——我不认为这是一个好的编程实践,而是一个个人偏好。它被认为是一个好的实践,因为它避免了混淆并增加了一致性。我没有说这是最好的做法,但这是一个好的做法。一个好的做法应该是一致的,我同意。但是,如果你一直使用蛇壳、骆驼壳或任何其他壳并不重要。我只是建议了海报可以研究的几个好做法之一,我们真的需要就我如何命名一个明显有助于海报的事情进行辩论吗?非常感谢,伙计们,看起来这是一个愚蠢的错误,我传递了一个错误的变量,如@Rob Moll提到的。我还修复了SQL注入。
            $.ajax({  
                type: "POST",  
                url: 'CheckUserCardNumber.php',  
                data: "card_number="+$(this).val(),  
                success: function(msg){            
                   alert(msg); 
                } 
            });