Php 重新加载或刷新页面时,如何在没有提交事件的情况下记住表单输入?

Php 重新加载或刷新页面时,如何在没有提交事件的情况下记住表单输入?,php,javascript,jquery,html,zend-framework,Php,Javascript,Jquery,Html,Zend Framework,我有一个页面中有许多文本输入的表单 与它们一起,我提供zend分页来选择结果 但是当我使用zend paginate时,用户表单输入会丢失,因为它不是submit 由于每次移动到新页面时页面都会重新加载,因此是否有任何方法可以维护用户输入 请任何人帮我找到这个问题的解决方案。您可以使用会话: $form = array(); if (!empty($_POST)) { $form = $_POST; } elseif (!empty($_SESSION['form'])) { $fo

我有一个页面中有许多文本输入的表单

与它们一起,我提供zend分页来选择结果

但是当我使用zend paginate时,用户表单输入会丢失,因为它不是submit

由于每次移动到新页面时页面都会重新加载,因此是否有任何方法可以维护用户输入

请任何人帮我找到这个问题的解决方案。

您可以使用会话:

$form = array();

if (!empty($_POST))
{
  $form = $_POST;
}

elseif (!empty($_SESSION['form']))
{
  $form = $_SESSION['form'];
}
然后使用$form填充输入字段。

伪代码:

使用javascript获取更改的值并将其存储在cooke use jquery cookie插件中

jQuery('form').on('change', 'input', function() {
    jQuery.cookie(...)
})
解决办法是

AJAX+会话

在每个输入的更改事件上发送ajax请求。 将数据保存到会话


每次加载表单数据时,检查会话以填充表单字段。

您可以使用ajax onfocusout of elements并将值存储在会话中。加载页面时,从会话获取数据并显示它。

如果数据不敏感,则使用会话或cookie。如果你想在第一次提交之前保存信息,那么你必须通过ajax将输入以静默方式发送到php并在那里进行管理。必须在第一次提交页面时,服务器才能获得用户的输入;只是当使用分页时,它显然不会再次提交-因此您使用会话来存储初始提交,然后在导航页面时重新使用。当我分页时,不会使用任何内容,就像填写表单后打开页面一样,您只需点击“重新加载”或“刷新”。我勾选了“我在退出后的分页中未获得任何值”使href链接到记录中的页面,因此这不是提交事件,但可能是用户首先提交了表单?否则,您将如何使用用户输入?当他们第一次提交表单时,您将在会话中保存该输入,然后在导航分页时重新使用该会话数据。实际上,用户将使用该表单,但他将使用分页遍历结果,分页仅为href url链接,而这正是我丢失所有输入的原因。我一直在考虑这种方法jsfiddle.net/Xxqb6/2但是它不起作用。我用你的代码来提醒paginate,但不知道如何在chnage事件后在prefill中存储表单值。不要期望在这个“论坛”中有一个成熟的应用程序。我们给你提示,你调查并尝试编程。这样你会学到最多的东西。你有两种可能:JavaScript或PHPi想要和你的一起使用这种方法,如图所示。这对于新手来说很好。现在你有第二个问题了。每个人都可以看到cookie值,因为您直接将它们以纯文本形式存储在cookie中。正如Ashwini所说,您需要一个AJAX+会话解决方案。您不将数据发送到cookie,而是使用AJAX发送到PHP文件。这个PHP将数据存储在PHP会话中。另一个PHP文件将读取会话值,并根据AJAX请求将其发送回。所有这些都应该与HttpSy一起使用。你的想法听起来很有用,但我不是jquery中的noob