Javascript Ajax调用输出相同的消息
下面我有一个ajax调用,它检查客户表中是否存在卡号,但是,在这两种情况下,我得到的响应都是,即使卡号存在,它也不存在。因此,这两条最终消息都将是不存在的 agent_reload.phpJavascript 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
<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);
}
});