php重新加载页面而不发布数据

时间:2009-07-02 10:18:56

标签: php javascript html refresh

我正在尝试刷新页面,而不是从上一次发送POST。

我试过

window.open("postme.php?r=t", "_self");

其中?r=t附加到最后但它似乎不刷新页面,因为页面显示目录中的一些文件,即使我已移动或删除它们也没有改变。< / p>

您可以在window.location.reload();

中指定网址吗?

有什么想法吗?

由于

6 个答案:

答案 0 :(得分:5)

如果您想避免刷新报告数据(出于任何原因,包括用户点击重新加载按钮),请使用POST-REDIRECT-GET pattern

答案 1 :(得分:2)

使用完POST数据后,将用户重定向到同一页面。

$URI = $_SERVER['REQUEST_URI'];

if(!empty($_POST)){
    //magic

    header("location:$URI");
}

现在刷新时,它不会重新提交POST数据。

答案 2 :(得分:1)

你可以尝试:

window.location.reload(true); //true sets request type to GET

答案 3 :(得分:1)

我知道这是迟到的,并希望它适用:我有同样的问题,当有人确认他们的库存选择,然后通过电子邮件发送订单[或从库存数据库中减去]然后显示他们的订单。然后,如果他们刷新,它会重新提交数据。所以我添加了一个session_destroy()。但是当他们刷新时,会出现很多错误。

SO - 我将代码分成[a]电子邮件,从库存数据库中删除订单/减去,然后[b]使用javascript“document.location.href ='nextPage.php'”因为我有时会使用PHP的“location(nextpage.php)”。无论如何,它通过电子邮件发送信息,然后转到显示它的页面。然后一个人可以刷新他们想要的一切,所有发生的事情就是一遍又一遍地显示出来。

希望有所帮助!

答案 4 :(得分:0)

嗯......我想也迟到了,但那时它可以帮助别人。我用过:

window.location.href = window.location.href;

取代location.reload();这将刷新页面而不提示用户重新发送信息。

答案 5 :(得分:-1)

让这个工作......

window.location =“postme.php?r = t”;