刚刚开始学习网站制作, 我选择学习Yii, php,javascript,html,都是刚刚开始学. 现在自己想做一个小项目练手,想实现一个checklist. 要根据上一次输入显示新的表单。所有的输入信息,最终需要输入数据库
比如:
问题1: 是否已婚?
问题2: 是否有小孩?
问题3: 男孩,女孩
问题4: 性别,男,女
问题5:年收入
如果问题1选择否,则直接跳过问题2,3, 进入问题4.
我想了一下,三个方案,但是没有一个能想明白:
方案1: 当action调用render的时候,传入一个array参数,指定此步骤要提的问题,各个需要的属性,然后view再根据参数生成具体的表单。每次下一步都发送到server端处理。
困难: action函数怎么判断当前具体执行到问题几,如果checklist很大的话,这个action函数会变得相当大
方案2: 在view里面定义出所有问题,但是全部hide, 下一步的时候调用一个javascipt函数,根据上一个输入,决定显示哪一个问题
困难a: view会很大,还有一点我不清楚,当问到最后一个问题的时候,是否能将历史的所有输入一起传给server端
困难b: 都放在view里面会不会加载起来很慢
困难c: 如果浏览器误关闭,是否每次都要重新回答所有的问题,能不能跟踪用户的状态,每次继续上次的问题
方案3: view里面定义个div, 然后用javascript每次动态生成表单,放到这个div里面。
困难: 同方案2的困难b和c
因为我的checklist会比较长,是不是最好在client端处理?
希望能够告诉我最正确的方法,我觉得我的方案都能实现,但是觉得好像都有问题。
谢谢!!