2010-12-23 62 views
0

這是提交表單後所運行:不能使「刷新」腳本

else 
{ 
    echo '<br/> Tu chisme se agregó con éxito.'; 
    echo '<script type="text/javascript">window.location.reload(true);</script>'; 
} 

用戶後提交基本上它做了幾件事情,最終的形式顯示一個文本說,該帖子已成功提交,然後第二個回顯嘗試重新加載頁面。但是我無法使它工作。它顯示文本,但不會重新加載頁面。代碼有什麼問題?請詢問任何信息。由於

+2

當你使它工作,你會發現你沒有足夠的時間來閱讀消息! :-) – acm 2010-12-23 18:13:38

+1

他不能「照常運作」,因爲所顯示的信息本身就是一個頁​​面,他正在重新加載該頁面。 – Erik 2010-12-23 18:21:05

回答

2

在POST後做的正確的事情是'重定向後',這意味着發送一個303代碼的HTTP頭(不是一個簡單的302代碼,大多數瀏覽器將阻止你重新發布後退按鈕,如果你使用303代碼,這是爲此目的完成的)。

在發送此HTTP頭代碼之前,您不應該發送任何內容(嘗試使用ob_start/ob_flush函數來控制它)。

所以,實際上,HTTP協議包含了您在POST請求後控制行爲所需的所有內容,所以最好避免使用JavaScript。

0

。你正在重新加載新的頁面。如果您想直接訪問者原來的頁面,你可以使用PHP的header

header("Location: http://www.example.com/"); 

更換example.com與目標URL。只有當頁面上沒有其他東西被輸出時,它纔會起作用,所以你不得不擺脫那一行文本。