2013-12-17 73 views
2

我想知道如何管理多個步驟的重定向?CakePHP:如果有多個步驟,如何管理重定向?

例子:

  1. 搜索的東西
  2. 點擊搜索結果
  3. ,點擊該結果的顏色
  4. 點擊提交選擇
  5. autoredirected到搜索

解決方案:

  1. 我可以手動通過?redirectUrl=/search?query=tshirt(具有適當的url編碼)通過每一步,但這似乎是非常醜陋的解決方案。或者也許有辦法自動化它?
  2. 我可以在會話中保存redirectUrl並擴展重定向功能,以在重定向之前始終檢查會話變量redirectUrl,但問題是:如果有人在步驟4退出會發生什麼情況?如果用戶在完全不同的位置點擊重定向頁面,會話變量將保持並重定向。

如果我得到有經驗的人的回答,那將是非常棒的!

回答

1

我認爲使用會話不是一個不錯的選擇。至於問題#2,您可以按照所描述的順序對每個頁面進行期望,如果用戶正在遵循正常的頁面導航,則他們從某個操作和控制器到達。因此,如果控制器的$this->referer()與您所期望的不匹配,請刪除redirectUrl會話變量,並將其重定向到序列的開頭。

0

做以下四個步驟一氣呵成使用簡單的隱藏和顯示JavaScript或使用AJAX調用

Search for something - create one form with query text box 
click on a result - show color options 
click on a color for this result - select color 
click to submit choice - execute step 5 

步:之後,你有搜索字符串和顏色,現在你可以很容易地重定向到搜索行動!

相關問題