我在页面上有一个表单,所以我得到了#34;这个页面使用了数据,你确定要刷新"我重新加载页面时的错误消息。
我查看了HTTP-303响应代码,它解除了消息(我在Chrome btw上),直到我提交表单一次,然后它再次开始烦我。
基本上,我有一个可选的"联系我"表单,如果刷新页面,则不应该提示。我不会想/为什么我需要一个单独的页面来提交这样的简短表格。任何人都可以帮助我吗?
答案 0 :(得分:1)
您最好的选择是使用Ajax。这样你就不需要重装了。
我通常将其与JQuery一起使用。
所以你最终得到的结果是:
function send_message(vMessage,vWho) {
$.ajax({
url:"messageSender.php",
data:{message:vMessage,from:vWho},
type:"POST",
success:function(result) {
// DO SOMETHING HERE, LIKE AN ALERT
}
});
}
答案 1 :(得分:1)
最终解决方案: 如何在同一页上阻止表单重新提交
action="something"
标记。 HTML5中必需header('Location: ...')
它将会像一个无限循环(废话)。像if (isset($_POST['some_submit_btn'])) {
header('Location: same_page')
(例如:header('Location: ' . $_SERVER['PHP_SELF'])
)和exit
即使在提交表单后,您的页面也可以定期刷新。重定向会清除POST请求或其他任何内容。
其他人指出Ajax是一个更简单的解决方案。我接受了它作为答案,但如果有人想这样做,我把它作为参考。
注意:如果要在两个页面/刷新之间传递数据,则必须通过会话或cookie传递它(我更喜欢会话)。我不认为有一个“干净”的解决方法
答案 2 :(得分:0)
保存表单数据后需要重定向。它可以在同一页面上完成,这不是问题,您只需要发出GET请求而不是POST。