这是我的代码。我很确定我的代码是正确的,但仅对于最后一个查询它无法正常运行。所有剩余的查询都运行良好,但最后一个查询没有通过某些对象返回值无法访问,但正在更新表。怎么了? 我附上正在显示的错误的图片。错误图像
首先是前端页面的代码:
<!DOCTYPE html>
<head>
</head>
<body>
<form>
<input type="text" id='dat'>
<button id='submit'>Submit</button>
</form>
<script src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.3.js">
</script>
<script>
$(function(){
$('#submit').click(function(){
var x=$('#dat').val();
$.ajax({
type:"GET",
url: "promo_code_apply2.php",
dataType: "json",
data: { x : x },
success: function(result){
alert(result);
},
error: function(e) {
// Handle error here
console.log(e);
}
});
});
});
</script>
</body>
现在是后端代码:
<?php
include('connection.php');
include('functions.php');
$p_code=$_GET['x'];
$sql="select * invite_codes where promo_name='".$p_code."'";
$res=mysqli_query($con,$sql);
if(!$res)
{
$data=mysqli_error($con);
echo json_encode($data);
die();
}
else{
if(mysqli_num_rows($res)==0)
{
$data="Invalid Code";
echo json_encode($data);
}
else{
$row=mysqli_fetch_assoc($res);
$ph=$row['user_mob'];
$sql2="update user_signup set no_of_referrals=no_of_referrals+1 where promo_name='".$p_code."'";
$res2=mysqli_query($con,$sql2);
if(!$res2)
{
$data=mysqli_error($con);
echo json_encode($data);
die();
}
else
{
$data="Conngrats";
echo json_encode($data);
}
}
}
?>
最佳答案
您没有设置按钮类型,因为它位于表单
内,所以它的默认类型是提交。当您按下按钮时,您的 jQuery 事件处理程序将被调用,但完成后将调用默认操作,即提交表单操作。它会重新加载您的页面,并且您的 jQuery
处理程序不会从 PHP
获取数据,因为 JavaScript
状态会在重新加载后重置。
为了防止这种行为,您可以:
将
return false
放在jQuery
事件处理程序的末尾 - 如下所示:$(函数(){ $('#submit1').click(function(){ ... }); 返回假;//<--- 阻止默认操作 }); });
或
- 设置按钮类型
type="button"
关于php - Ajax 调用对于特定查询的特定 if else 语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43700233/