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

时间:2019-05-04 11:57:16

标签: php ajax bootstrap-4

在尝试使用Ajax将数据从第1页发布到第2页时,第2页上的if语句让我知道$_POST尚未设置-但尽管未满足条件,它仍会运行一些但不是全部。 该问题在XAMPP和我的Web服务器上仍然存在。

第1页上的按钮以发布数据:

<button type="button" class="btn postBtn" onclick="location.href='page2.php'" id="1337">Click me</button>

通过第1页上的ajax发送数据:

$(document).ready(function(){
    $('.postBtn').click(function(){            
    var id = $(this).attr("id");  
    $.ajax({  
        url:"page2.php",  
        method:"post",  
        data:{
                id:id,
            },  
        });  
    });     
});

第2页上的if语句:

if (isset($_POST['id'])) {
    echo $_POST['id'];
    $_SESSION['id'] = $_POST['id'];
} else {
    echo "no id posted";
}

单击按钮时,我希望if语句回显1337并设置$_SESSION['id'] = 1337。 但是,当我实际单击按钮时,回声显示no id posted,但令人惊讶的是print_r($_SESSION)显示[id] => 1337

关于我所缺少的任何想法吗?

1 个答案:

答案 0 :(得分:1)

如果要使用Ajax发布值,请删除按钮的onclick。如果要查看结果,请在ajax中回显“添加成功”字段,并在其中管理结果。

$('.postBtn').click(function(){        
    var id = $(this).attr("id");  
    $.ajax({  
        url:"page2.php",  
        method:"post",  
        data:{id:id,},
        success: function(res) { 
            console.log(res);
        } 
    });  
});