作者cleanwind (骨傲风清(挂网))
看板PHP
标题Re: [请益] 请问网路问卷设计关於分页的问题
时间Sun Feb 24 00:08:12 2008
※ 引述《MrMarcus (请勿忘记密码)》之铭言:
: 以上3种方式都会遇到一个问题:将问卷分成数个页面,免不了要提供
: 使用者回去前一个页面修改之前填写的资料的功能(除非在问卷设计上
: 就是刻意不让使用者在送出之前有修改之前作答资料的机会)。
: 当使用者按下「上一页」按钮回到前一个页面的时候(这里的「上一页」
: 按钮址的是我们自己提供的按钮,不是浏览器本身的上一页按钮,当然啦
: 浏览器本身的上一页按钮也会带来问题,不过这里先不讨论),我们得
: 把使用者之前填写的资料重新倒出来填入所有的栏位,当初勾选的状态
: 也都要恢复原状,这得花掉一些工夫。
: 因此我推第4种做法,就是在浏览器端做分页。用几个<div>将问卷题目
: 包起来,透过CSS/JavaScript(不难)去隐藏/显示某一页的题目,然後
: 在最後一页提供一个送出的submit按钮,一次将所有资料送到後端程式去。
: 这个做法不须用到session或者隐藏栏位,也不须考虑回到上一页时得
: 将前一页的作答状态回复的问题(从第3页回到第2页只是把div#3隐藏
: 然後把div#2显示而已,div#2当初的作答状态会原封不动恢复)。
: 在伺服器端程式方面是透过POST一次接收到所有资料,也比较单纯些。
既然有网友提到这个问题 ....
我不推 JS 是因为我是真心觉得 网页应该要在JS失效时还能正常使用,
不过坦白说我是真的不清楚,但是我猜M大的方法在JS失效时应该只会无法分页,
不过造成无法分页而导致<input type="submit">不见的状况记得要避免。
如果 法1 法2 要让使用者在回上一页也可以更改/编辑通常我会用 ...
<input type="text" name="name1" value="<?php echo $_POST['name1']; ?>">
<input type="text" name="name2" value="<?php echo $_SESSION['name2']; ?>">
if($_POST['name3']=='value3' or $_SESSION['name3']=='value3') {
$radio_3 = ' checked';
}
<input type="radio" name="name3" value="value3" <?php echo $radio_3; ?>>
这样的方式,端看你要把资料存在哪里 :p
不过我不嫌麻烦可能是这种事情我做习惯了,
一开始写都会记得把value後的PHP code 先写好。
如果你每写完一页就要写进资料库一次,
那真的会很辛苦 ^^" 因为每一次都要把资料读出来 .... 然後显示 XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.168.222
1F:推 aliado:谢谢热心的讲解喔~我会试试session的方法看看~感恩!! 02/24 00:43