作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [请益] 请问网路问卷设计关於分页的问题
时间Sat Feb 23 23:34:23 2008
※ 引述《cleanwind (骨傲风清(挂网))》之铭言:
: ※ 引述《aliado (章鱼趴趴照~~)》之铭言:
: : 各位专业的大哥
: : 小弟最近想设计一个网路问卷系统
: : 可是看了相关讨论串以及看完相关书籍以後
: : 有一个问题想请各位指导一下
: : 就是我想设计的网路问卷是想有分页功能的
: : 就如同my3q这个网站所提供的问卷
: : 可以有下一分段 上一分段
: : 到最後再执行递交的动作
: : 我现在只能做到全部的问项在同一页
: : 再同时传送%_POST['变数']给一个网页去存到资料库里面
: : 至於如果要进行分页以後
: : 各问项的变数如何储存到最後再一起处理
: : 这部分到现在仍然没头绪
: : 可否请热心的各位提供一下思考的方向
: : 谢谢大家~
: 1.使用session功能
: 不过递交的同时记得要 unset($_SESSION['xxx']); 释放资源。
: 2.使用input hidden的功能
: 每个问题都要有
: <input type="hidden" name="<?php evho $sid;?>"
: value="<?php echo $_POST[$sid]; ?>">
: 3.每做完一页写一次资料库 XD
以上3种方式都会遇到一个问题:将问卷分成数个页面,免不了要提供
使用者回去前一个页面修改之前填写的资料的功能(除非在问卷设计上
就是刻意不让使用者在送出之前有修改之前作答资料的机会)。
当使用者按下「上一页」按钮回到前一个页面的时候(这里的「上一页」
按钮址的是我们自己提供的按钮,不是浏览器本身的上一页按钮,当然啦
浏览器本身的上一页按钮也会带来问题,不过这里先不讨论),我们得
把使用者之前填写的资料重新倒出来填入所有的栏位,当初勾选的状态
也都要恢复原状,这得花掉一些工夫。
因此我推第4种做法,就是在浏览器端做分页。用几个<div>将问卷题目
包起来,透过CSS/JavaScript(不难)去隐藏/显示某一页的题目,然後
在最後一页提供一个送出的submit按钮,一次将所有资料送到後端程式去。
这个做法不须用到session或者隐藏栏位,也不须考虑回到上一页时得
将前一页的作答状态回复的问题(从第3页回到第2页只是把div#3隐藏
然後把div#2显示而已,div#2当初的作答状态会原封不动恢复)。
在伺服器端程式方面是透过POST一次接收到所有资料,也比较单纯些。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.19
1F:推 aliado:谢谢M大详细的解说~我先尝试看看 非常谢谢罗!! 02/24 00:06
2F:推 ottokang:我也推荐使用Javascript,节省伺服器资源跟实做复杂度 02/25 14:31