2010-03-03 71 views
1

看看我正在處理的網站的前一個實現,我可以看到我們有一個調用ManageObject.php腳本的選項表單。該腳本做一些動作上的對象,然後通過下面的代碼返回頁面:PHP表單返回和刷新

echo "<script type=\"text/javascript\"> window.history.back();</script>"; 

我的JavaScript技能非常初級十歲上下,但我可以告訴的是,它只是按回瀏覽器上的按鈕。這當然不會刷新頁面,因此該頁面上的所有數據現在都已舊。

有沒有辦法強制刷新調用window.history.back()?還是有更好的方式調用.php腳本而不離開頁面並在.php腳本完成後刷新頁面?

回答

1

有一個系統叫POST-redirect-GET,它解決了這個問題。它的工作原理是這樣的:

  • 形式,用POST數據提交到一個PHP頁面
  • PHP腳本處理POST數據,然後由於瀏覽器使用重定向瀏覽器重定向到另一個頁面
  • GET,刷新頁面將不會重新發送POST數據。此外,頁面上的數據將被更新。

在PHP中,您可以撥打header("Location: /path/to/page.php");,然後按exit();重定向。與在問題中發佈的JavaScript方式相比,它的優勢在於它不要求用戶啓用JavaScript,並且不會將用戶帶到中間頁面。

+0

是否有任何好的教程顯示這與表單的行動? – 2010-03-06 00:04:26

+0

Nvmd找到了一個好的:http://ranacse05.wordpress.com/2008/04/28/header-tutorial/ – 2010-03-06 00:50:30