我有以下形式:
<form action="process_promo.php" method="post">
<input type="text" name="promo" id="promo">
<div class="promo_check"></div>
</form>
然后,我使用 Ajax 执行检查,以查看在促销输入字段中输入的文本是否与我的数据库中使用 MySQL 的文本匹配。
这是我的阿贾克斯:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(document).on('click', '.promo_check', function() {
var promo = $("#promo").val();
// Returns successful data submission message when the entered information is stored in database.
$.post("process_promo.php", {
promo1: promo,
}, function(data) {
if(data == 'wrong') {
alert('wrong');
}else{
if(data == 'correct') {
alert('correct');
} } }
});
});
});
</script>
最后,这是我在process_promo.php中的MySQL查询:
<?php
$servername = "localhost";
$username = "mark";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$promo = $_POST['promo'];
$query = "SELECT * FROM supplier_users WHERE promo_code = '$promo' AND username = 'mark'";
$result = mysql_query($query);
if (mysql_num_rows($result)>0) {
echo "correct";
}else{
echo "wrong";
}
?>
如果查询返回 true 并且我的输入字段中的文本与数据库中的文本匹配,我要求它回显出"正确",否则如果它返回 false,我要求它回显"错误",然后提醒我我的 Ajax 中的相关结果。
由于某种原因,我没有收到任何警报消息,据我所知,什么也没发生。
请有人告诉我哪里出错了,提前谢谢
执行以下操作:
- 仅包含一次 最新版本的 jQuery 库。
- 向表单添加按钮并使用
return false
来防止默认按钮提交事件。 - 确保在 jQuery 中正确关闭大括号
{}
。(你的jQuery中有一个额外的右大括号}
) - 在表单上方添加
ajax
。
试一试:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery(document).on('click', '.promo_button', function() {
var promo = jQuery('#promo').val();
jQuery.post("process_promo.php", {promo: promo,},
// Pass your variable (promo) to the function
function(promo) {
// If your variable is empty
if(!promo) {
alert('wrong');
}
else{
// Pass the results back to your page
jQuery('.promo_check').html(promo);
}
}
);
// Prevent default form submit
return false
});
});
</script>
<form action="" method="post">
<input type="text" name="promo" id="promo">
<button class="promo_button">>></button>
<div class="promo_check"></div>
</form>
您的PHP代码看起来不错,应该运行良好。但是,您可以添加错误报告:
error_reporting(-1);
ini_set('display_errors', 'On');
到PHP页面的顶部以捕获任何讨厌的错误。
请记住,您可以使用 Chrome 的网络面板来检查您的开机自检请求。这通常可以有很大帮助。
希望这有帮助!
如果有任何错误,请参阅控制台日志...你有任何语法错误吗?服务器是否接收了您的发布请求?如果是这样,您的服务编码是否有任何错误?尝试使用"console.log('一些日志记录文本')"来查看代码是否正常工作并到达那里。