Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 添加用户';s测试结果的选择_Php_Jquery - Fatal编程技术网

Php 添加用户';s测试结果的选择

Php 添加用户';s测试结果的选择,php,jquery,Php,Jquery,这有点难解释,所以请容忍我 我已经编写了一个数据库驱动的测试脚本,它运行得非常好。用户选择答案并按下提交按钮后,他们将被转发到一个页面(grade.php),该页面显示他们的分数 分数下面是他们刚刚参加的测试的副本,正确答案突出显示。我只想修改它,以便用户选择的答案也会突出显示 例如,如果用户选择了答案a,而这是正确的答案,那么它可能有一个黄色背景(表示它是正确的答案)加上一个金星(表示用户选择了正确的答案)。如果用户选择了B,那么它可能有一个黑色背景(表明它是一个错误的选择),另外它可能有一个

这有点难解释,所以请容忍我

我已经编写了一个数据库驱动的测试脚本,它运行得非常好。用户选择答案并按下提交按钮后,他们将被转发到一个页面(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>
大多数是选择题,用户从中选择一个最佳答案。在本例中,他们必须为#5键入答案,并为#9选择两个选项(复选框)

如果他们得到的每个答案都是正确的,则响应var_dump($\u 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)上的以下文本:

  • 企鹅住在哪里
  • A.非洲

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

    C.法国

    D.加利福尼亚州

    我的页面已显示正确和不正确的答案。谁能告诉我如何叠加用户的选择?我可能需要克服一些困难才能成功,但如果你能给我指出正确的方向,那么我就可以发挥作用,或许可以问一些更集中的问题


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

    这个问题有点不清楚,也不知道您现在是怎么做的,但我可以这样做。使用多种样式,如当用户选择正确答案时
    style=“answer correct\u selected”
    和如果用户选择错误答案时
    style=“error\u answer error\u selected”
    以及其他样式的混合。在样式中,
    答案
    应该有黄色背景,
    选择正确
    会有一颗金星,
    选择错误
    会有支票等等……谢谢,但我已经指定了独特的样式。问题是我知道如何“识别”一个答案是正确的还是不正确的,但我不知道如何也将其识别为用户“选择的”。可能有一个非常简单的解决方案就在我眼前,但我还没有找到它。如果选择
    q1
    指的是您提供的答案键中的问题1,那么您可以使用以下选项。用户选择的内容在
    q1
    中可用,现在请删除
    q
    ,然后按下应答键。如果他们匹配,答案是正确的,否则就错了。
    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) "
    }