1

我有一个非常复杂的表格,其中有多个“阶段”。

每个阶段都有用户添加不定行数的表单。每次用户单击“继续”时,这些表单都会保存到数据库中(每个“阶段”在数据库中都有自己的表)并显示下一个阶段。

我担心用户按下“返回”以获得以前的表单(如果他们犯了错误或其他事情)。

我能想到的解决这个问题的唯一三种方法是:

  1. 不允许人们反击。如果他们确实将它们直接发送到第一个表格以重新开始。
  2. 请求表单页面时检查数据库。如果已经有行,则删除这些行并在他们所在的表单上再次启动用户。
  3. [潜在的——这会更难,因为我正在使用 codeigniter 的 form_validation 库] 当用户按下时检查数据库。获取任何当前值并将其作为默认值放入表单中。然后在提交时,删除所有行并替换为表单值。

各位大佬是怎么做这种表格的?仅针对某些形式的逻辑量变得非常荒谬!哈哈,有没有更好的方法呢?我怀疑上面的数字 3 是最好的选择?

谢谢

4

2 回答 2

2

I have used the third option on various occasions, though depending on the size of the form, this can certainly get overwhelming, not to mention the fact that I haven't used CodeIgniter's validation before.

Many issues arise from the first two options that should be avoided if possible [Including, but not limited to: Mistakes that aren't able to be corrected, hairy database logic, etc.], but the reward of having happy users is invaluable.

Hope this helps!

Mason

To give a visual summary of what users may think if they can't go back, I have included this image.

http://momentumshift.com/wp-content/uploads/2011/05/senior_woman_using_computer_mon142089.jpg

于 2012-06-26T17:00:28.870 回答
1

1 和 2 对用户体验都非常不利。3 是您最好的选择,根据您的数据库结构,您可能能够更新而不是删除和重新插入。

如果你有一个密钥,我假设你有,为了区分多个表单提交,你可以使用类似insert on duplicate key update取决于你的数据库引擎的东西。

于 2012-06-26T17:02:04.550 回答