是否可以用"Go Back"发送一个变量?javascript:history.go(-1)'


Is it possible to send a variable with my "Go Back" button using href='javascript:history.go(-1)'

我正在使用以下代码,并希望在单击时将变量发送回上一页:

echo "<center> Photo #{$Count} | <a href='javascript:history.go(-1)'>Go Back</a></center>"

我想我可以做这样的事情,但它不起作用:我添加了?VP='Y'

echo "<center> Photo #{$Count} | <a href='javascript:history.go(-1)'?VP='Y'>Go Back</a></center>"

既然你标记了PHP,你可以做

echo "<center> Photo #{$Count} | <a href='".$_SERVER['HTTP_REFERER']."?VP=Y'>Go Back</a></center>";

然后在另一页

$var = $_GET['VP'];

这样行吗?

<a href='' id="back">Go Back</a>
<script>
document.getElementById("back").href = document.referrer + "?variable=value";
</script>

注意这个文档。如果用户直接导航到页面,Referrer将为空。这当然是一个问题,为什么这可能是一个备份解决方案:

<a href='' id="back">Go Back</a>
<script>
var ref = document.referrer;
if(ref == "") {
    ref = "javascript:history.go(-1);";
} else {
    ref = ref + "?variable=value";
}
document.getElementById("back").href = ref;
 </script>

我看到你正在使用php,所以你可以通过制作一个简单的表单与$_SERVER['HTTP_REFERER']作为动作,并添加一个隐藏的字段值来解决它。或者添加一个会话变量:)SESSION['yourvar'] = 'whatever'

然后在下一页上,您可以使用$_GET$_POST从表单中获得它,或者通过echo $_SESSION['yourvar']获得会话变量。当使用会话时,确保在页面的开始处启动它们。更多细节请点击http://php.net/manual/en/book.session.php