【问题标题】:Invoke the browser back button in PHP/Javascript在 PHP/Javascript 中调用浏览器后退按钮
【发布时间】:2013-03-07 21:34:28
【问题描述】:

我有一个表单,它会将用户发送到不同的表单,以防他们没有完成它以返回表单并完成任何遗漏的内容。现在除非用户按下浏览器的返回按钮,否则页面会重新加载,这意味着任何数据都会丢失。

当他们回到上一页时,他们已经填写的任何内容都应该保持不变。

我有以下两页:

第 1 页:

<?PHP

echo "<a href='page2.php'>NEXT</a>";
echo "<input type=text size=25 name=txt />";
?>

第 2 页:

<?php
$refer = $_SERVER['HTTP_REFERER'];
$lastlink = "<a href='$refer'>BACK</a>";

echo $lastlink;
?>

在第二页上,如果我单击“返回”返回到第 1 页,则在第 1 页中输入的任何内容都将丢失,这是我不想要的。 如何在不使用 Javascript 的情况下解决它?用Javascript? 我知道我可以在 javascript 中使用

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

但是还有其他方法吗?

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    看看html5 history api。 History api + ajax 很棒的组合

    【讨论】:

    • 知道如何创建它,因为我对历史 API 不感兴趣:|
    • 您可以推送页面状态,稍后在历史中导航,调用 onpopstate 事件,您可以获取最近推送的状态并使用它。您可以阅读提供的教程。
    【解决方案2】:

    您还可以使用会话在提交时存储$_POST,并检查它是否在第一个表单的页面加载时设置。

    【讨论】:

    • 如果我有 50 个文本框,使用 post 将非常耗时且缓慢,但谢谢 :)
    【解决方案3】:

    我通常对:

    history.back(-1);
    

    使用服务器端逻辑返回上一页不是一个好方法,所以我不鼓励这样做。

    【讨论】:

      猜你喜欢
      • 2014-04-17
      • 2017-06-29
      • 2023-03-08
      • 2017-03-24
      • 2013-03-02
      • 1970-01-01
      • 2011-08-06
      • 2011-02-17
      • 1970-01-01
      相关资源
      最近更新 更多