2010-03-30 92 views
29

我正在使用表单对页面进行“评分”。这种形式将数据“发布”到其他地方的PHP脚本。我只是想在表单处理后显示一个链接,这会将用户带回上一页。我可以在我的php脚本中使用javascript来做到这一点吗?返回上一页

GF

回答

72

您可以使用一个链接来调用history.go(-1)在Javascript中,基本上是等效于单击后退按钮。然而,理想情况下,最好是创建一个链接回到用户发布到表单的URL - 这样,历史的正确“流”就会被保留下来,用户不会理解为什么他们有东西点击“转发”,其实只是再次提交表单。

+0

如何使用一个链接来调用一段JavaScript代码? – 2010-03-30 20:50:20

+24

'link text here...' – Amber 2013-05-06 14:25:45

+4

link text here...在用户通过清除缓存清除历史记录时不起作用... – user1400915 2013-10-27 13:43:25

3

如果您的网络服务器正确redirects您发布了一个新的页面后,浏览器上的常规“后退”按钮将工作。或者javascript中的“history.go(-1)”。这将产生一个填写表格。

但是,如果服务器只是返回新的内容而没有重定向 - 那么history.go(-1)不会帮助你。那时你已经失去了你的形式。

如果您只是想回到前一个网址 - 只需链接到A HREF标记。这会向你显示一个空的表单。

+0

无论Web服务器如何,PHP都可以生成重定向。 – 2010-03-30 20:51:03

+1

确实如此,但PHP在服务器上运行。我正在谈论客户端服务器,而不是在服务器上运行的软件。 – drozzy 2010-03-30 20:52:24

30

取决于你想要做什么。你可以用这样的东西:

echo "<a href=\"javascript:history.go(-1)\">GO BACK</a>"; 

这是最简单的选择。另一张海报是正确的,有一个适当的历史流,但这是你的一个例子。

刚刚编辑,orig版本没有缩进,看起来没有任何东西。 ;)

+0

@dscher完美的答案兄弟,我正在寻找这样的事情,幸好找到了你的答案。 – V15HM4Y 2013-04-16 06:38:49

21

您明确要求JS的解决方案,但在事件有人访问你的形式与JS禁用的PHP备份总是好的:

加载窗体时抢一样$previous = $_SERVER['HTTP_REFERER'];通过一些以前的页面地址,然后在您的表单中将其设置为<input type="hidden" value="$previous" />。当您使用脚本处理表单时,您可以抓住该值并将其粘贴到header("Location:___")中,或直接将地址粘贴到链接中,以便将它们发送回来。

没有JS,非常简单,您可以将它组织起来所以只有当客户端没有启用JS时才能处理它。

+0

HTTP_REFERRER是否容易受到注入攻击?它似乎是。我喜欢它不依赖于JS,但寻找有效的URL似乎很麻烦。 JS版本对我来说更加安全。 – blindsnowmobile 2017-03-30 03:59:32

24

试试这个:

$previous = "javascript:history.go(-1)"; 
if(isset($_SERVER['HTTP_REFERER'])) { 
    $previous = $_SERVER['HTTP_REFERER']; 
} 
在HTML

<a href="<?= $previous ?>">Back</a> 

的JavaScript代码是初始化作为后备的HTTP_REFERER变量有时无法正常工作。

+2

我其实更喜欢你的答案!此解决方案将重定向,而不会弹出通知,提示“表单重新提交”或任何情况。 +1 – 2015-04-17 19:35:37

8

像这样:

<?php 

    if (isset($_SERVER["HTTP_REFERER"])) { 
     header("Location: " . $_SERVER["HTTP_REFERER"]); 
    } 

?> 
5

我们可以在我们的网页上可以采取浏览器窗口前一页使用HTML代码显示后退按钮。此页面将有一个按钮或一个链接,通过点击它,浏览器将返回到上一页。这可以通过使用html或在客户端使用JavaScript来完成。

这里是这个按钮

<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);"> 

使用JavaScript

我们可以使用JavaScript来创建一个链接到带我们回到以前的或历史页面的代码。以下是使用客户端JavaScript移回浏览器的代码。

<a href = "javascript:history.back()">Back to previous page</a> 
1

我想按钮onclick =“history.back();”是解决问题的一种方法。但在以下情况下可能无法正常工作:

1.如果页面被刷新或重新加载。 2.如果用户在新页面中打开链接。

为了解决这些问题,如果您知道必须返回哪个页面,可以使用以下代码。例如。如果您在一个页面上没有链接,并且要使用后退按钮返回到该页面。

< input type =“button”onclick =“document.location.href ='filename';”值= “返回” NAME = “按钮” 类= “BTN”>

2

...通过查看Facebook的代码...我发现这个

Go Back to Previous Page

0

也许迟到了这个答案,但只是在纯HTML就可以送花儿给人使用./

<a href="./">Return</a>