2012-11-20 132 views
1

我有一个向SQL数据库查询的页面。它的唯一目的是让学生锻炼。根据学生的活动,该页面会用新内容重写,以便学生可以输入查询,显示结果表格或收到错误消息。当点击浏览器后退按钮时提交表格

所有正在通过表单发布数据到同一页面。

不过,我净身出$ _ POST变量的内容来准备新的行动,如果一个学生使用后退按钮或前进按钮(点击返回按钮后)的数据丢失。

但是,有一个“返回”按钮,通过发布所需数据来组装数据以恢复上一页。是否有可能使用某种技术,JavaScript,HTML5,PHP或其他任何实际提交表单时按下浏览器返回按钮时发布组装数据的表单?

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

+3

存储在一个会话或cookie变量... –

+1

对不起所有人,并感谢您的努力。他们正在关闭PHP服务器,我必须学习Polopoly,这将需要一段时间。我对此并不满意,但我们正在努力让每个人都使用Polopoly。那么... – serafim

回答

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"); 
+0

我有一种直觉,这是要走的路。 Antoher诱人技巧正在操纵浏览器历史。 – serafim

2

正如你可以存储在会议后的数据的意见建议,例如每次新查询发布,你可以添加:

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

然后,你可以允许用户去前进/后退通过这种与某种形式的循环:

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