【问题标题】:Store value on page refresh在页面刷新时存储值
【发布时间】:2016-02-26 22:33:41
【问题描述】:

有没有办法在页面刷新时将值存储在会话中?

例如 如果我在文本框中写“abc”,当我刷新页面时,它将存储在会话中。

更新: 实际上,如果我在文本框中写“abc”,那么我将进入没有 ajax 的分页的第二页(即加载)。 当我回到第一页时,文本框的值仍然存在。

这就是我想说的。

【问题讨论】:

  • 您需要将数据发布到服务器以将其添加到会话中。刷新页面到底是什么意思?通过提交表单,还是直接按 f5?
  • 实际上,如果我在文本框中写“abc”,那么我将在没有 ajax 的情况下进入第二页(即加载)。当我回到第一页时,文本框的值仍然存在。这就是我想说的。

标签: php session


【解决方案1】:

到目前为止,您尝试过什么?这是一个非常基本的问题

只需session_start();$_SESSION['abc'] = $_POST['abc'];,如果您通过邮寄方式发送,则

<input `name="abc" value="<?= isset($_SESSION['abc']) ? $_SESSION['abc'] : 'default value' ?>" >`;

编辑

如果你点击 f5,它不会作为 POST 发送,你可以检查 f5 是否被点击并通过 ajax 发送,或者当输入不为空时,你可以在模糊事件后发送输入,有很多可能性。检查capturing f5 keypress event in javascript using window.event.keyCode in window.onbeforeunload event is always 0 and not 116

另一种选择是在输入值或输入模糊后将值保存在 cookie 中的 JavaScript 中,然后当您返回站点时检查该值是否存在并显示。

【讨论】:

  • 如果我按 F5,那将如何作为邮件发送?
  • 如果你点击 f5 它不会作为 POST 发送,你可以检查 f5 是否被点击并通过 ajax 发送,或者你可以在输入不为空时在模糊事件后发送输入,有很多可能性。检查stackoverflow.com/questions/14707602/…
  • 那么我在你的答案中错过了你的 ajax 部分(因为 OP 也只有 php 标签)
  • 这似乎是 OP 正在寻找的 - 在多部分表单场景中继续下一个表单时保存以前的表单值。不需要ajax
  • 虽然按下返回与刷新不同——通常浏览器会自己缓存提交的值:stackoverflow.com/questions/1036782/…
【解决方案2】:

我认为这是不可能的。刷新发生在客户端。无需任何请求发送到服务器即可处理。

要向您的服务器发送请求,您要么需要发布,要么需要获取和刷新,这两者都不是。

正如@Robert 已经在他的评论中建议的那样,你需要更多的东西来解决你的问题(即 ajax)

【讨论】:

    【解决方案3】:

    我不确定我刚刚发现这个也许它可以帮助你。您可以使用 jquery 和 ajax。使用 jquery 可以检测页面是否刷新

    $('body').bind('beforeunload',function(){
       //get your textbox value and send it to php file and you can start your session there.
    });
    

    Link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多