CakePHP:如果有多个步骤,如何管理重定向?

时间:2013-12-17 13:37:37

标签: php cakephp redirect

我想知道如何使用多个步骤管理重定向?

示例:

  1. 搜索内容
  2. 点击结果
  3. 点击此结果的颜色
  4. 点击提交选择
  5. 自动转到搜索
  6. 解决方案:

    1. 我可以通过每个步骤手动传递?redirectUrl=/search?query=tshirt(使用适当的网址编码),但这似乎是非常难看的解决方案。或者也许有一种自动化方法?
    2. 我可以在会话中保存redirectUrl并将重定向功能扩展为在重定向之前始终检查会话变量redirectUrl,但问题是:如果有人在第4步退出会发生什么?会话变量保持并将重定向,如果人在完全不同的地方点击具有重定向的页面。
    3. 如果我得到了有经验的人的答案,那将是非常棒的!

2 个答案:

答案 0 :(得分:1)

我认为使用会话并不是一个糟糕的选择。对于问题#2,您可以期望您描述的序列中的每个页面,如果用户遵循正常的页面导航,则它们来自某个动作和控制器。因此,如果控制器的$this->referer()与您期望的不匹配,请删除redirectUrl会话变量,并将它们重定向到序列的开头。

答案 1 :(得分: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

步骤:之后您有搜索字符串和颜色,现在您可以轻松地重定向到搜索操作!