在一个网站中,我想实现一个wizard。它看起来应该像一系列表格。
我的要求是:
您将如何实现? (一系列HTTP发布表单,http获取表单,是否通过javascript提交?)
思路:
我计划将所有信息存储在 session 中,并在向导结束时将信息保存在数据库中并清除当前 session 信息。这样,我可以自动完成字段,并知道用户在向导的完成位置。
我主要关心的是:
最佳答案
我不建议将 session 用于任意数据存储!如果您最终使用 session 进行登录身份验证,那往往会很快变得困惑,并且还会破坏安全模型。将您的身份验证与设置数据分开,并创建一个专门用于设置的表,或者使用javascript localStorage!
在您的情况下,您所描述的内容对我来说就像是一个很长的表格,它具有显示/隐藏功能以及多个表格部分,并带有持久存储的怪癖!
换句话说,代替form1 > form2 > form3 > form4 > done
form_section_1 > validate, save data, and then display form_section_2 and hide form_section_1 > validate, save data, and then display form_section_3 and hide form_section_2 > etc > true form submit once
对于没有javascript的用户,只需在提交任何部分后验证所有部分中php中的信息。如果您确实希望甚至在边缘情况下也可以存储由session_id标识的信息,则可以将它们存储在设置表中。
为了简单起见,在这种情况下,我将使用localStorage在每次验证时存储所有数据,并使用javascript防止意外离开主表单。如果您真的必须通过支持例如ie7(http://caniuse.com/#search=localStorage)使您的生活复杂化,然后检测localStorage并在没有它的情况下将数据传递给php脚本,该脚本将其放入单个数据容器对象并将其全部转换为将单个json包保存在 session 中的单个变量中,或者甚至保存在数据库的设置表中。