添加用户选择以测试结果

时间:2016-02-10 03:11:51

标签: php jquery

这有点难以解释,所以请耐心等待......

我已经整理了一个数据库驱动的测试脚本,它运行得非常好。在用户选择他们的答案并按下提交按钮后,他们会转发到显示其分数的页面(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):

  1. 企鹅住在哪里?
  2. 一个。非洲

    B中。南极洲(黄色背景,表示正确答案+金星表示用户选择了这个正确答案)

    ℃。法国

    d。加利福尼亚

    我的页面已经显示正确且错误的答案。谁能告诉我如何叠加用户的选择?我可能不得不跳过几个箍来完成这项工作,但如果你能指出我正确的方向,那么我可以玩它并可能会提出一些更有针对性的问题。

    我应该提到我对jQuery有一点经验,尽管我主要使用PHP - 以防万一有jQuery解决方案。

0 个答案:

没有答案