Forms 带预览的表单提交

Forms 带预览的表单提交,forms,Forms,我有一个用户填写的相当长的HTML表单。填写后,用户可以预览他们提交的数据。从那里,他们可以将数据提交到系统中或返回并编辑它。我想知道处理此预览步骤的最佳方法是什么。我的一些想法是: 将表单数据存储在cookie中,以便 预览 将表单数据存储在 会议 将数据放入数据库中,使用 一个状态列,指示它是一个 预演 创建这样的预览时,您通常做什么?还有其他问题需要考虑吗?< /P> < P>将数据设为隐藏字段()、< /P> 为什么不使用cookie或会话? -如果用户决定放弃此数据,他可以导航到其

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

  • 将表单数据存储在cookie中,以便 预览
  • 将表单数据存储在 会议
  • 将数据放入数据库中,使用 一个状态列,指示它是一个 预演

创建这样的预览时,您通常做什么?还有其他问题需要考虑吗?< /P> < P>将数据设为隐藏字段()、< /P> 为什么不使用cookie或会话? -如果用户决定放弃此数据,他可以导航到其他页面。当他稍后回来,看到数据完好无损时,他可能会感到惊讶

为什么不是数据库?
-如果用户刚刚关闭浏览器,谁会清理数据库中的数据。。。我不希望为此编写cron作业。

将数据作为隐藏字段()

为什么不使用cookie或会话? -如果用户决定放弃此数据,他可以导航到其他页面。当他稍后回来,看到数据完好无损时,他可能会感到惊讶

为什么不是数据库?
-如果用户刚刚关闭浏览器,谁会清理数据库中的数据。。。我不想为此编写cron作业。

我不确定这是否是最佳实践,但当我完成此任务时,我已将其放在一个会话中。我希望用户在一次会话中预览和提交/重新编辑数据,这样会话对我来说就足够了

如果希望预览在用户计算机上持久化,则应使用cookie,这意味着用户不必在单个会话期间对预览进行sumbit/reedit,但可以在这两个操作之间关闭浏览器,然后在下一个会话中返回预览。使用此方法,您必须考虑用户可以在浏览器中拒绝Cookie。这就是为什么人们通常将会话与cookies结合在一起

除非您希望以某种方式跟踪和存储预览和编辑操作,否则不需要将数据放入数据库(带有状态列)。你可以把数据库想象成桌子上的一个抽屉——你把文件放在那里,里面有你想储存和以后找到的任何东西。如果您只是绘制预览草稿,并且在提交结果后,只有最终版本存储在抽屉/数据库中,并且预览被揉皱并扔掉,那么您不会将其放入数据库中。但是,如果出于某种原因,您认为稍后将审阅这些草稿,那么它们必须存储在数据库中


我不确定我的英语是否清晰,但我已经尽力了:D

我不确定这是否是最好的练习,但当我完成这项任务时,我已经把它放在了一个会话中。我希望用户在一次会话中预览和提交/重新编辑数据,这样会话对我来说就足够了

如果希望预览在用户计算机上持久化,则应使用cookie,这意味着用户不必在单个会话期间对预览进行sumbit/reedit,但可以在这两个操作之间关闭浏览器,然后在下一个会话中返回预览。使用此方法,您必须考虑用户可以在浏览器中拒绝Cookie。这就是为什么人们通常将会话与cookies结合在一起

除非您希望以某种方式跟踪和存储预览和编辑操作,否则不需要将数据放入数据库(带有状态列)。你可以把数据库想象成桌子上的一个抽屉——你把文件放在那里,里面有你想储存和以后找到的任何东西。如果您只是绘制预览草稿,并且在提交结果后,只有最终版本存储在抽屉/数据库中,并且预览被揉皱并扔掉,那么您不会将其放入数据库中。但是,如果出于某种原因,您认为稍后将审阅这些草稿,那么它们必须存储在数据库中


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

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

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

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


如果使用DB,需要为访问添加时间戳(假设您不只是将其保留为用户确定的某个已保存名称,如“我的2008抵押文档”),以便稍后进行清理。如果用户确实在表单中保存了它,只需将其保留,直到他们完成表单或将其删除。

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

会话仅适用于(取决于您的设置)耗时不到一小时的任务。手动输入易于启动和完成的数据(如CD/DVD编目)将非常适合存储会话。同样,如果这个人不得不停下来四处寻找一些文件(同样,在抵押贷款应用程序或在线纳税表等的情况下),如果会话超时,你会遇到一个非常愤怒的人