1

场景(所有发生在管理区域/后端):

  1. 从列表页面,用户单击链接以查看文章(在后端)。
  2. 从文章查看页面,用户单击链接以编辑该文章。
  3. 在文章编辑页面,表单提交到当前的uri。
  4. 如果验证成功或用户取消,用户将被重定向到文章查看页面。
  5. 从文章查看页面,用户单击“返回”链接以返回到列表页面。

列表 <--> 查看 <--> 编辑

现在,我只能跟踪前一页的引用 url。在编辑表单中,我使用隐藏字段来维护对视图页面的引用,以免在表单 POST 提交失败期间更改它并且用户保留在编辑页面中。

问题是当用户从编辑返回查看页面时,指向列表页面的“返回”链接现在链接到编辑页面。

供参考,

  • 列表页面 url 是动态的,因为用户应该返回到同一页面上的列表和排序顺序(存储在查询字符串中);因此,固定的 url 是不可能的。
  • 过去,我尝试过使用会话(例如 SESSION['view_to_list_ref'] SESSION['edit_to_view_ref']),但它搞砸了多个选项卡。
  • 我可以通过 ajax 在视图/编辑之间进行转换,但我希望此时保持应用程序简单且无 ajax。
  • 我正在使用 PHP + Kohana 3.2 框架

我能想到的唯一解决方案是将列表页面 url 编码并通过查询字符串附加到“查看文章”链接。这样,即使在编辑页面中,列表页面的位置也会被保留;因为返回查看页面的引用 url 也将在查询字符串中包含列表页面 url。但是我真的不喜欢用长参数值(编码或未编码)“弄脏”url的想法。

我真的希望有一个更优雅的解决方案来解决这个问题,即通常跟踪多个级别的页面推荐;不仅仅是专门解决我提到的场景。

编辑:哦,解决方案应该能够支持执行相同场景的多个选项卡。

4

1 回答 1

0

您可以通过使用 PHP 会话中的唯一标识代码、临时变量以及使用临时数据库表来跟踪页面,该临时数据库表通过这些临时值跟踪页面加载。

数据库结构可能是:

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

页面加载的跟踪时间将允许您有选择地擦除超过 X 分钟的加载,并保持表相对较小。

无论如何,这将允许您保留尽可能多的级别,如果您想添加一个自动递增计数器字段或您自己的计数器字段,您甚至可以保留一个简单易用的数字系统来跟踪页面加载,尽管我相信页面加载时间足以满足这种情况。

于 2012-05-10T05:31:18.440 回答