Ajax POST尚未设置,但仍会激活php if语句的一部分
在尝试使用Ajax将数据从page1发布到page2时,page2上的if语句让我知道未设置$\u POST,但尽管未满足条件,它仍运行部分代码,但并非所有代码。 这个问题在XAMPP和我的web服务器上都存在 第1页上用于发布数据的按钮:Ajax POST尚未设置,但仍会激活php if语句的一部分,php,ajax,bootstrap-4,Php,Ajax,Bootstrap 4,在尝试使用Ajax将数据从page1发布到page2时,page2上的if语句让我知道未设置$\u POST,但尽管未满足条件,它仍运行部分代码,但并非所有代码。 这个问题在XAMPP和我的web服务器上都存在 第1页上用于发布数据的按钮: <button type="button" class="btn postBtn" onclick="location.href='page2.php'" id="1337">Click me</button> 第2页的Php if
<button type="button" class="btn postBtn" onclick="location.href='page2.php'" id="1337">Click me</button>
第2页的Php if语句:
if (isset($_POST['id'])) {
echo $_POST['id'];
$_SESSION['id'] = $_POST['id'];
} else {
echo "no id posted";
}
单击该按钮时,我希望if语句回显1337并将$_SESSION['id']=1337。
然而,当我实际单击该按钮时,回音显示没有发布id,但令人惊讶的是打印会话显示[id]=>1337
你知道我遗漏了什么吗?如果你想用ajax来发布值,点击一下按钮就可以了。如果您想看到您正在回送的结果,请在ajax中添加成功字段,并在那里控制台结果
$('.postBtn').click(function(){
var id = $(this).attr("id");
$.ajax({
url:"page2.php",
method:"post",
data:{id:id,},
success: function(res) {
console.log(res);
}
});
});
你具体在哪里观察到没有id张贴的文本?在调试工具中还是在页面上?在调试和实际页面上都可以看到echo和$\会话。谢谢您的回答。按照您的指示,我的控制台显示,ID都已回显+会话已设置-太棒了!您的回答让我意识到ajax确实会发布id,但它不像GET或基于表单的post那样出现,而是在幕后。出于兴趣,你能详细解释一下为什么我必须删除onclick吗?当然是第二个,因为这样你就不能检查控制台了。放屁。
$('.postBtn').click(function(){
var id = $(this).attr("id");
$.ajax({
url:"page2.php",
method:"post",
data:{id:id,},
success: function(res) {
console.log(res);
}
});
});