在PHP页面上保存数据的最简单方法

时间:2009-06-24 14:01:09

标签: php javascript

我正在开发一个Web应用程序(用PHP开发),当用户发布任何服务请求时,用户必须填写一个非常长的表单。

用户填写表单并提交后,会加载另一个页面(确认页面),其中显示用户填写的所有值。我必须指出,在这个阶段,数据还没有保存到MySQL。现在,在此页面上,用户可以保存服务请求或返回。

我的问题从这里开始。当用户返回时。填写的所有数据丢失。 BTW用户倾向于使用浏览器返回按钮而不是确认页面上提供的后退按钮。

如何通过用户填写持久数据,以便用户可以编辑/更改数据并再次提交更改的数据。

8 个答案:

答案 0 :(得分:5)

如果您尚未将其持久保存到数据库,则可以做的一件事是将值存储在用户会话中。因此,当用户前进时,将信息保存到会话中,然后当他们回击时,从会话中加载信息。然后,当他们最终确定数据时,您可以将其发送到数据库。

答案 1 :(得分:3)

你可以使用代码:

`session_cache_limiter('must-revalidate');`

这对我很有用。请记住,此行必须在session_start()之前。无论如何,这对我有用,因为我不必处理会话附带的所有会话变量。

或者将表单数据放入会话中,如下所示: 代码:

$_SESSION['myFormData'] = $_POST;

答案 2 :(得分:3)

最简单的方法可能是将数据存储在会话中。让您的数据输入表检查会话以查看数据是否存在,如果存在,请使用该数据预填充表单。

完成整个过程并将数据存储在数据库中后,从会话中清除这些值。

答案 3 :(得分:1)

使用Cookie和JavaScript,您可以:

  1. 在提交表单时将所有值存储在cookie中
  2. 使用onload处理程序检查cookie并使用cookie中的数据填充表单
  3. 不要忘记以允许没有cookie或JavaScript的用户使用该页面的方式对其进行编码;他们只是没有为他们填充表格。

答案 4 :(得分:1)

每隔一段时间就有人想出一个好的解决方案。就是那个时候。

自IE8以来,所有主流浏览器都支持HTML 5离线存储。考虑到这一点,我决定一劳永逸地处理表单状态,因此所有脚本语言甚至HTML页面都可以保持表单状态。不需要cookie,不需要内存占用会话,不需要服务器端编程,你可以将表单部分填写到你想要的任何URL,返回,表单就在你离开的地方。只需删除一些小脚本即可完成。

这是免费的 - > http://www.jasonsebring.com/dumbFormState

让我知道你的想法。

答案 5 :(得分:0)

使用sessions。它们非常易于使用。

答案 6 :(得分:0)

在您的确认页面上,您可以放置​​一个包含所有值的隐藏字段的表单和一个后退提交按钮,该按钮会将它们发布到上一页。您还可以在此表单上设置第二个提交按钮,该按钮将发布到将值写入数据库的URL。

答案 7 :(得分:0)

几年前我做了一个向导,其中一个要求是用户应该能够下一个/上一个,甚至可以来回跳转到已经完成的步骤,所以如果用户已完成步骤4并且通过单击前两次跳回2步,他/她应该可以单击“向导进度器”上的步骤4并跳转到步骤4.为此,我使用Serializing objects - objects in sessions并将“向导对象”存储在数据库,工作得很好iirc。

编辑:啊,是的。另一个要求是用户应该能够在几周后返回并完成向导,或者如果存在该用户邮件地址,则继续放弃向导。

相关问题