2012-02-06 76 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运行适当的脚本),则可以使用另一种方法。

在后一种情况下,您将只需要重定向到当前页面。