我正在开发一个Web应用程序(用PHP开发),当用户发布任何服务请求时,用户必须填写一个非常长的表单。
用户填写表单并提交后,会加载另一个页面(确认页面),其中显示用户填写的所有值。我必须指出,在这个阶段,数据还没有保存到MySQL。现在,在此页面上,用户可以保存服务请求或返回。
我的问题从这里开始。当用户返回时。填写的所有数据都丢失。 BTW用户倾向于使用浏览器返回按钮而不是确认页面上提供的后退按钮。
如何通过用户填写持久数据,以便用户可以编辑/更改数据并再次提交更改的数据。
答案 0 :(得分:5)
如果您尚未将其持久保存到数据库,则可以做的一件事是将值存储在用户会话中。因此,当用户前进时,将信息保存到会话中,然后当他们回击时,从会话中加载信息。然后,当他们最终确定数据时,您可以将其发送到数据库。
答案 1 :(得分:3)
`session_cache_limiter('must-revalidate');`
这对我很有用。请记住,此行必须在session_start()之前。无论如何,这对我有用,因为我不必处理会话附带的所有会话变量。
或者将表单数据放入会话中,如下所示: 代码:
$_SESSION['myFormData'] = $_POST;
答案 2 :(得分:3)
最简单的方法可能是将数据存储在会话中。让您的数据输入表检查会话以查看数据是否存在,如果存在,请使用该数据预填充表单。
完成整个过程并将数据存储在数据库中后,从会话中清除这些值。
答案 3 :(得分:1)
使用Cookie和JavaScript,您可以:
不要忘记以允许没有cookie或JavaScript的用户使用该页面的方式对其进行编码;他们只是没有为他们填充表格。
答案 4 :(得分:1)
每隔一段时间就有人想出一个好的解决方案。就是那个时候。
自IE8以来,所有主流浏览器都支持HTML 5离线存储。考虑到这一点,我决定一劳永逸地处理表单状态,因此所有脚本语言甚至HTML页面都可以保持表单状态。不需要cookie,不需要内存占用会话,不需要服务器端编程,你可以将表单部分填写到你想要的任何URL,返回,表单就在你离开的地方。只需删除一些小脚本即可完成。
这是免费的 - > http://www.jasonsebring.com/dumbFormState
让我知道你的想法。
答案 5 :(得分:0)
使用sessions。它们非常易于使用。
答案 6 :(得分:0)
在您的确认页面上,您可以放置一个包含所有值的隐藏字段的表单和一个后退提交按钮,该按钮会将它们发布到上一页。您还可以在此表单上设置第二个提交按钮,该按钮将发布到将值写入数据库的URL。
答案 7 :(得分:0)