2013-11-28 33 views
0

我目前有一個名爲item.php的PHP頁面,它上面有一個鏈接「添加項目」。什麼是用PHP設計我的網頁表單流的正確方法?

當用戶點擊鏈接時,它會將它們轉到save.php,其中頁面會執行一些操作,例如將項目保存到數據庫。在該頁面中,有保存代碼運行後重定向:

header("Location: item.php); 

現在item.php頁面上顯示「刪除項目」的鏈接,因爲它應該。

問題出在這裏:如果用戶現在點擊瀏覽器上的返回按鈕,它會再次向他們展示item.php頁面(我不想),並再次向他們顯示「添加項目」鏈接我也不想)。

如何解決此問題,以便瀏覽器歷史堆棧中只有一個item.php頁面?

+1

您是否考慮過使用jQuery和AJAX添加項目而不刷新整個頁面?看起來這將是您的問題最優雅的解決方案。 – Charles

+0

這聽起來像是最好的解決方案,我只是不熟悉這兩者(我通常是桌面/移動應用程序開發人員),所以我看到是否有簡單的東西,我在這裏失蹤。 –

+0

只是爲了澄清,當用戶點擊後退按鈕刷新'item.php'時會發生什麼?刷新後應該說「刪除項目」,不是嗎? – Charles

回答

1

如果您不願意使用AJAX,我認爲您真正想問的問題是「按下後退按鈕後,如何刷新item.php?」

有幾種方法可以實現這一點,下面是使用JavaScript/jQuery完成的一個方法。庫的隱藏<input>變量稱爲「刷新」,當用戶點擊「添加項目」提交:

<input type="hidden" id="refresh" value="no"> 

現在,你可以使用下面的jQuery函數:

$(document).ready(function(e) { 
if ($("#refresh").val() == 'yes') { location.reload; } else { $('#refresh').val('yes'); } 
}); 

以下是此代碼的工作:第一次加載頁面並呼叫$(document).ready時,隱藏的input值爲「no」,這意味着上述功能將該值設置爲「yes」。然後,當用戶點擊「後退」按鈕時,隱藏字段值將保持不變(但仍然是),但是$(document).ready將再次被調用。這一次被調用時,它將重新加載頁面。

相關閱讀:http://www.hunlock.com/blogs/Mastering_The_Back_Button_With_Javascript

一個解決方案使用PHP:How do I make Firefox reload page when back button is pressed?

讓我知道如果我解釋不清楚,或者如果您有任何疑問。希望這可以幫助。

相關問題