2012-05-10 35 views
1

的情況下(行政區域/後端內的所有發生的事情)的多個級別的軌跡:保持頁面引薦

  1. 從列表頁面,用戶點擊一個鏈接以查看文章(在後臺)。
  2. 從文章視圖頁面,用戶單擊鏈接編輯該文章。
  3. 在文章編輯頁面中,表單被提交給當前的uri。
  4. 如果驗證成功或用戶取消,用戶將被重定向到文章視圖頁面。
  5. 從文章視圖頁面,用戶點擊「返回」鏈接返回到列表頁面。

名單< - >查看< - >編輯

現在,我只能追蹤從以前的頁面引用URL。在編輯表單中,我使用隱藏字段來維護引薦到視圖頁面,以免在POST提交失敗時將其更改爲自身,並且用戶仍保留在編輯頁面中。

問題是,當用戶從編輯返回到視圖頁面時,現在鏈接到編輯頁面的「返回」鏈接到列表頁面。

僅供參考,

  • 列表頁面的網址是動態的,作爲用戶應該返回到上市在同一頁上和排序順序(存儲在查詢字符串);因此固定的網址是不可能的。
  • 過去,我嘗試過使用會話(例如SESSION ['view_to_list_ref'] SESSION ['edit_to_view_ref']),但它與多個選項卡搞砸了。
  • 我可以通過ajax在視圖/編輯之間切換,但我希望在這個時間點保持應用程序的簡潔和無懈可擊。
  • 我使用PHP + Kohana的3.2框架

我能想到的唯一的解決辦法是讓列表頁面URL編碼,並追加到通過查詢字符串中的「查看文章」鏈接。這樣,即使在編輯頁面中,列表頁面的位置也會保留;因爲引用網址返回查看頁面也會在查詢字符串中包含列表頁面url。不過,我不太喜歡用長參數值(編碼或不編碼)「弄髒」網址的想法。

我真的希望有一個更優雅的解決方案來解決這個問題,通常跟蹤頁面引用的多個級別;不只是專門解決我提到的情況。

編輯:哦,該解決方案應該能夠支持多個選項卡執行相同的情況。

回答

0

您可以通過在PHP會話中使用唯一標識代碼,臨時變量以及使用臨時數據庫表跟蹤這些臨時值加載頁面來跟蹤頁面。

數據庫結構可能是:

+-------------+-------------------+---------------------+ 
| Unique ID | Page Referral | Time of page load | 
+-------------+-------------------+---------------------+ 

跟蹤頁面加載時間將允許你有選擇性地擦拭比X分鐘舊的負荷,並保持表相對較小。

無論如何,這將允許你保持儘可能多的級別,如果你想添加一個自動遞增計數器字段,或者你自己的計數器字段,你甚至可以保留一個簡單易用的數字系統跟蹤頁面加載,但我相信頁面加載的時間就足夠了。

+0

我不確定我是否完全理解你的帖子。您提出的方法能夠支持多個選項卡嗎? 擴大了上述場景;如果我打開了幾個選項卡,可以通過以下方式執行類似的編輯操作:列表>查看>編輯;它能夠維護每個獨立的推介線程嗎? – ephemeron

+0

如果你給每個標籤都是自己的唯一ID,那麼是的,它會。 –

+0

我從來沒有想過,你可以分配頁面加載從每個選項卡與唯一的ID。你能分享一下你將如何去實現嗎?謝謝。 – ephemeron