2010-03-03 67 views
1

看看我正在处理的网站的前一个实现,我可以看到我们有一个调用ManageObject.php脚本的选项表单。该脚本做一些动作上的对象,然后通过下面的代码返回页面:PHP表单返回和刷新

echo "<script type=\"text/javascript\"> window.history.back();</script>"; 

我的JavaScript技能非常初级十岁上下,但我可以告诉的是,它只是按回浏览器上的按钮。这当然不会刷新页面,因此该页面上的所有数据现在都已旧。

有没有办法强制刷新调用window.history.back()?还是有更好的方式调用.php脚本而不离开页面并在.php脚本完成后刷新页面?

回答

1

有一个系统叫POST-redirect-GET,它解决了这个问题。它的工作原理是这样的:

  • 形式,用POST数据提交到一个PHP页面
  • PHP脚本处理POST数据,然后由于浏览器使用重定向浏览器重定向到另一个页面
  • GET,刷新页面将不会重新发送POST数据。此外,页面上的数据将被更新。

在PHP中,您可以拨打header("Location: /path/to/page.php");,然后按exit();重定向。与在问题中发布的JavaScript方式相比,它的优势在于它不要求用户启用JavaScript,并且不会将用户带到中间页面。

+0

是否有任何好的教程显示这与表单的行动? – 2010-03-06 00:04:26

+0

Nvmd找到了一个好的:http://ranacse05.wordpress.com/2008/04/28/header-tutorial/ – 2010-03-06 00:50:30