这有点难以解释,所以请耐心等待......
我已经整理了一个数据库驱动的测试脚本,它运行得非常好。在用户选择他们的答案并按下提交按钮后,他们会转发到显示其分数的页面(grade.php)。
分数下面是他们刚刚进行的测试的副本,并突出显示正确的答案。我只想修改它,以便用户选择的答案也会突出显示。
例如,如果用户选择了答案A,并且该答案是正确答案,那么它可能会有一个黄色背景(表示它是正确的答案)加上一颗金星(表示用户选择了答案)那个正确的答案)。如果用户选择了B,那么它可能会有黑色背景(表示它的选择不正确),而且它可能有一个描绘复选标记的图像,表示用户选择了错误的答案。
让我们从测试页底部的表单开始:
<form action="grade.php" method="post" id="quiz">
<input type="hidden" name="PreviousURL" id="url" />
<input type="hidden" name="grade" value="<?php echo $grade; ?>" />
<input type="hidden" name="user_token" value="<?php echo isset($_POST['user_token']) ? $_POST['user_token'] : '' ; ?>" />
<input type="submit" value="Submit Quiz" />
</form>
点击提交后,我们会转发到grade.php,其中包含一个包含各种测试答案密钥的开关。在这个例子中,我们通过其URL-px-intro-4进行了十个问题的测验。这是答案的关键:
$answers = array(1 => array('D'),
2 => array('A'),
3 => array('C'),
4 => array('A'),
5 => array('Libya'),
6 => array('B'),
7 => array('B'),
8 => array('B'),
9 => array('C', 'D'),
10 => array('D'));
$total = count($answers);
大多数是多项选择题,用户选择最佳答案。在这个例子中,他们必须输入#5的答案,他们必须为#9选择两个选项(复选框)。
如果他们得到的每个答案都正确,则回显var_dump($ _ POST);显示以下内容:
array(13) {
["q1"]=> array(1) { [0]=> string(1) "D" }
["q2"]=> array(1) { [0]=> string(1) "A" }
["q3"]=> array(1) { [0]=> string(1) "C" }
["q4"]=> array(1) { [0]=> string(1) "A" }
["q5"]=> array(1) { [0]=> string(5) "Libya" }
["q6"]=> array(1) { [0]=> string(1) "B" }
["q7"]=> array(1) { [0]=> string(1) "B" }
["q8"]=> array(1) { [0]=> string(1) "B" }
["q9"]=> array(2) { [0]=> string(1) "C" [1]=> string(1) "D" }
["q10"]=> array(1) { [0]=> string(1) "D" }
["PreviousURL"]=> string(25) "http://g1/test/px-intro-4"
["grade"]=> string(147) "
}
如果他们再次参加考试并错过了#9而根本没有回答#10,那么阵列将改为:
array(12) {
["q1"]=> array(1) { [0]=> string(1) "D" }
["q2"]=> array(1) { [0]=> string(1) "A" }
["q3"]=> array(1) { [0]=> string(1) "C" }
["q4"]=> array(1) { [0]=> string(1) "A" }
["q5"]=> array(1) { [0]=> string(5) "Libya" }
["q6"]=> array(1) { [0]=> string(1) "B" }
["q7"]=> array(1) { [0]=> string(1) "B" }
["q8"]=> array(1) { [0]=> string(1) "B" }
["q9"]=> array(2) { [0]=> string(1) "B" [1]=> string(1) "D" }
["PreviousURL"]=> string(25) "http://g1/test/px-intro-4"
["grade"]=> string(147) "
}
为了更清楚,想象一下结果页面上的以下文字(grade.php):
一个。非洲
B中。南极洲(黄色背景,表示正确答案+金星表示用户选择了这个正确答案)
℃。法国
d。加利福尼亚
我的页面已经显示正确且错误的答案。谁能告诉我如何叠加用户的选择?我可能不得不跳过几个箍来完成这项工作,但如果你能指出我正确的方向,那么我可以玩它并可能会提出一些更有针对性的问题。
我应该提到我对jQuery有一点经验,尽管我主要使用PHP - 以防万一有jQuery解决方案。