表格提交预览

时间:2009-04-08 05:42:59

标签: forms

我有一个相当长的HTML表单,用户填写。填写完成后,用户可以预览他们提交的数据。从那里,他们可以将数据提交到系统或返回并编辑它。我想知道处理这个预览步骤的最佳方法是什么。我的一些想法是:

  • 将表单数据存储在Cookie中 预览
  • 将表单数据存储在 会议
  • 将数据放入数据库中 状态列,表示它是a 预览

创建这样的预览时,您通常会做什么?还有其他需要考虑的问题吗?

3 个答案:

答案 0 :(得分:3)

将数据作为隐藏字段()。

为什么不用cookie或会话?   - 如果用户决定丢弃此数据,他可能只是导航到其他页面。当他稍后返回并看到数据完整时,他可能会感到惊讶。

为什么不是数据库?   - 如果用户只是关闭浏览器,谁清理数据库中的数据? ...我宁愿不为此写一份cron工作。

答案 1 :(得分:1)

我不确定这是否是最好的做法,但是当我完成这项任务时,我已将它放入会话中。我希望用户在单个会话期间预览和提交/重新编辑数据,这样会话就足够了。

如果您希望预览在用户计算机上保留,则应使用cookie - 这意味着用户无需在单个会话期间对预览进行汇总/重新编辑,但可以在此操作之间关闭浏览器,而不是返回回到下一个会话的预览。使用此方法,您必须考虑用户可以在其浏览器中拒绝cookie。这就是人们通常将会话与cookie结合在一起的原因。

除非您想以某种方式跟踪和存储预览和编辑操作,否则无需将数据放入数据库(带有状态列)。您可以将数据库想象成表格中的抽屉 - 您可以将纸张放在您要存储的任何内容中,然后再查找。如果您只是绘制预览草稿,并且在提交结果后,只有最终版本存储在抽屉/数据库中,并且预览会被压缩并丢弃,而不是将其放在数据库中。但如果由于某种原因你认为你以后会通过草稿,那么它们必须存储在数据库中。

我不确定我的英语是否清楚,但我尽了最大努力:D

答案 2 :(得分:0)

我根据首先填写表单的难度来衡量它。如果这是一个漫长的过程(如抵押贷款或其他信息)并且您有用户登录,您可能希望为他们提供保存未完成表单的机会,稍后再回过头来。

会话仅适用于(取决于您的设置)不到一小时的任务。手动输入数据(如CD / DVD编目)易于启动且易于完成,非常适合存储会话。同样地,如果这个人必须停下来并找到一些文件(再次,在抵押贷款应用程序或在线税表等情况下),如果会话超时,他们会有一个非常愤怒的人必须重新输入信息。

我会避免直接将内容注入cookie,因为数据是为后续请求传递的,并且假设您已经可以访问基本会话功能。

如果您使用数据库,需要为访问添加时间戳(假设您不要只留下用户确定的一些保存名称,例如'我的2008年按揭凭证')所以你可以稍后清理它。如果用户确实将其保存在窗体中,请将其保留,直到完成表单或删除它为止。