2012-02-06 53 views
1

假設我有一個帶有列表的頁面(list.php)。PHP,在編輯頁面中保存記錄後返回到呼叫頁面

我點擊該列表上的一行即可編輯該記錄。我去了一個edit.php頁面。

我在該edit.php頁面上有3個按鈕。保存,應用,取消

  1. 保存按鈕 - 保存記錄並返回到(list.php)頁
  2. Apply按鈕 - 保存記錄,但保持在同一頁上(edit.php
  3. 取消按鈕 - 不保存,剛剛回歸(list.php)頁

但現在的圖像,如果我能在不同的頁面進行編輯訪問該項目。我如何返回到該呼叫頁面? ---我添加了一個參數(代碼)的URL?像頁面起源代碼?

---我在會話中保存上一頁的網址嗎? (不好的,他們可以右鍵點擊打開另一個頁面,這將被保存到會話網址)

我只是好奇別人如何在SAVE後返回到上一頁。

謝謝

+0

登錄頁面就是一個很好的例子,我看到一些帶有返回的URL作爲編碼參數。但我不喜歡它的想法 – rudy 2012-02-06 07:50:20

回答

1

你可以將服務器變量$ _SERVER ['HTTP_referrer']。 他們也可以在會話中存儲當前頁面,並使用處理頁面的其他方式。

+0

如果在新頁面中右鍵單擊打開編輯頁面,會發生什麼情況。 ,然後返回到其他選項卡上的上一頁,然後右鍵單擊開始打開更多頁面。當我返回編輯頁面時,將存儲在$ _SERVER ['HTTP_referrer']中的內容是什麼?是不是像會議? – rudy 2012-02-06 07:46:25

+0

這確實有效,我只是試了一下。 BUT 從php.net php.net/manual/en/reserved.variables.server.php 報價「的頁面(如果有的話),其被稱爲用戶代理到當前頁面的地址。這是設置不是所有的用戶代理都會設置它,有的提供修改HTTP_REFERER作爲一個功能的能力,簡而言之,它不能真正被信任。「 – rudy 2012-02-06 08:05:58

+0

然後使用會話 – 2012-02-06 08:27:45

1

向URL添加參數是唯一可靠的,但引用醜陋的方式。

這就是爲什麼現在這樣的就地版本經常使用AJAX實現,而這個網站就是一個很好的例子。

但是,有不同的情況。
登錄頁面是不完美的例子,因爲你總是有一個表單而不是一個鏈接,因此你可以隨時將當前頁面存儲在一個隱藏的表單域中。

如果您使用某種前端控制器,並且所有請求實際上都指向單個index.php文件(基於URI運行適當的腳本),則可以使用另一種方法。

在後一種情況下,您將只需要重定向到當前頁面。