1

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

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

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

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

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

4

2 回答 2

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");
于 2012-11-20T10:45:17.877 回答
2

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

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

然后你可以允许用户通过某种形式的循环来回退/前进:

<ul>
<?php foreach($_SESSION['queries'] as $k => $v) : ?>
    <li>Some link structure</li>
<?php endforeach; ?>
</ul>
于 2012-11-20T10:46:51.857 回答