Ajax POST尚未设置,但仍会激活php if语句的一部分

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

在尝试使用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语句:

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);
        } 
    });  
});