点击浏览器后退按钮时提交表单

时间:2012-11-20 10:41:02

标签: php javascript

我有一个用于询问SQL数据库查询的页面。它的唯一目的是让学生锻炼身体。根据学生的活动,页面会使用新内容重写,以便学生可以输入查询,显示结果表或收到错误消息。

所有人都在处理将数据发布到同一页面的表单。

但是,如果学生使用后退按钮或前进按钮(点击后退按钮后)数据会丢失,因为我会清理$ _POST变量内容以准备好采取新操作。

然而,有一个“返回”按钮,通过POST所需数据来组装数据以恢复上一页。是否有可能使用某种技术,javascript,html5,PHP或其他什么来实际提交在点击浏览器后退按钮时发布汇编数据的表单?

我正在使用HTML 5,PHP 5和一些JavaScript(不是JQuery,但如果它给了我一个选项......)

2 个答案:

答案 0 :(得分:2)

你可以使用html5存储,因为如果用户没有填写完整的表格或关闭浏览器,数据将在关闭的浏览器上丢失而不是提交表格不填写

检查html5存储空间

 function supports_html5_storage() {
          try {
            return 'localStorage' in window && window['localStorage'] !== null;
          } catch (e) {
            return false;
          }
        }

使用onkeyup存储如

  $("#title").keyup(function(){

            var articel_title =  $("#title").val();
            localStorage.setItem("articel_title",articel_title);
             localStorage.getItem("articel_title");
        });

下次用户打开表单时只显示存储的内容

清除使用

localStorage.removeItem("articel_title");

答案 1 :(得分:2)

根据评论中的建议,您可以将帖子数据存储在会话中,例如每次发布新查询时都可以添加它:

$_SESSION['queries'][] = $_POST;

然后你可以允许用户通过某种形式的循环返回/转发:

<ul>
<?php foreach($_SESSION['queries'] as $k => $v) : ?>
    <li>Some link structure</li>
<?php endforeach; ?>
</ul>