我有一个分为4个独立屏幕的表单,因此向用户显示屏幕1,填写字段并单击继续,然后显示屏幕2,填写这些字段并单击继续等..
当他们填写整个表格时,他们输入的详细信息将被写入MySQL数据库。
他们可以随时返回表格并更改细节....这是我有问题的地方。
当他们导航到第1屏幕时,我会从数据库中读取他们之前的详细信息,并使用这些值预先填写表单。
到目前为止,非常好。
当他们点击继续时,表单已提交,我们加载屏幕2.此时,我必须再次读取数据库以获取他们先前在屏幕2上输入的值。
我应该在这里提到我正在使用MVC模式,因此每个屏幕都是一个单独的请求。 我真的希望能够将每个屏幕分成单独的请求,因为它使HTML和控制器逻辑保持良好和干净,但我开始怀疑它是否是创建多阶段表单的最佳方式!
处理每个屏幕检索数据的最佳方法是什么?我唯一能想到的是在屏幕1读取数据,然后将其存储在会话变量中,但是我通过这样做获得了很多收益吗?
我是否应该不得不继续重读相同的数据?这不会是一个巨大的性能问题,但重新阅读相同的数据只是感觉不对。
答案 0 :(得分:0)
我认为,答案是在屏幕1上阅读数据库并编写屏幕2,3和2。 4个字段作为屏幕1上的隐藏字段。
这样,在绘制屏幕2时,我会检查$ _POST中是否有任何值。
同样适用于屏幕3& 4。