动态checklist怎么实现?

刚刚开始学习网站制作, 我选择学习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端处理?

希望能够告诉我最正确的方法,我觉得我的方案都能实现,但是觉得好像都有问题。

谢谢!!