如何将学生的答案与实际答案相匹配

时间:2013-03-08 03:15:19

标签: php

我在下面有一个foreach循环,它显示每个表行的数据:

foreach ($studentData['questions'] as $questionId => $questionData) {

    ...

            echo '<td width="30%" class="answers">'.htmlspecialchars($questionData['answer']).'</td>' . PHP_EOL;

    ...

            echo '<td width="30%" class="studentanswer">'.htmlspecialchars($questionData['studentanswer']).'</td>' . PHP_EOL;


    }

我想要做的是,如果studentansweranswer匹配,则studentanswer将变为绿色,如果不匹配,则显示红色的错误答案,如果已满studentansweranswer匹配100%然后我想要一个变量如$check以绿色显示字符串工作站fully correct如果不是100%匹配则显示字符串{{1}红色。

例如,上面的代码可以显示:

not full correct

上述输出应将学生答案Answer: B C Student Answer: B D 显示为与答案B匹配的绿色,但学生答案B应为红色,因为没有D回答。变量D应以红色$check表示,因为学生的答案不完全正确,只是部分答案。

但是如何实现呢?

更新:

它没有改变文字的颜色:

not fully correct

CSS:

if($questionData['answer'] == $questionData['studentanswer']) {
$style = 'green';
$checked = 'Fully Correct';
} else {
$style = 'red';
$checked = 'Not Correct / Not Fully Correct';
}

        echo '<td width="30%" class="answers '.$style.'">'.htmlspecialchars($questionData['answer']).'</td>' . PHP_EOL;

...

        echo '<td width="30%" class="studentanswer '.$style.'">'.htmlspecialchars($questionData['studentanswer']).'</td>' . PHP_EOL;

3 个答案:

答案 0 :(得分:0)

<?php 
if($questionData['answer'] == $questionData['studentanswer'] {
    $style = 'color:green';
    $checked = 'right';
} else {
    $style = 'color:red';
    $checked = 'not fully correct';
}
?>

...

<td width="30%" class="answers" style="<?php echo $style; ?>">
<?php echo $checked; ?>

答案 1 :(得分:0)

您可以使用条件来实现此目的。

使用php的if()函数,您可以确保您的脚本符合您在处理某段代码之前所选择的某些条件。

因此,为了检查学生的答案是否与老师的答案相符,在循环内,您将添加以下内容:

if( $questionData['studentanswer'] == $questionData['answer'] )
{
    // The answer was correct
}
else {
    // This is for the answer not being correct
}

此代码仅显示了如何实现您要完成的任务的示例,当然您需要自己完全满足您的需求。

如果您有任何其他问题或需要进一步的帮助,请随时提出。

答案 2 :(得分:0)

试试这个:

$check = true;

foreach ($studentData['questions'] as $questionId => $questionData) {
    $studentAnswer = htmlspecialchars($questionData['studentanswer']);
    $answer = htmlspecialchars($questionData['answer']);
...

        echo '<td width="30%" class="answers">'.htmlspecialchars($questionData['answer']).'</td>' . PHP_EOL;

...
    if($answer == $studentAnswer)
    {
        echo '<td width="30%" class="studentanswer greenAnswer">'.htmlspecialchars($questionData['studentanswer']).'</td>' . PHP_EOL;
    }
    else
    {
        echo '<td width="30%" class="studentanswer redAnswer">'.htmlspecialchars($questionData['studentanswer']).'</td>' . PHP_EOL;
        $check = false;
    }

}

if($check)
{
    echo '<p class="greenAnswer">Fully Correct!</p>';
}
else
{
    echo '<p class="redAnswer">Not Fully Correct!</p>';
}

在CSS中输入以下内容:

greenAnswer
{
    color:green;
}

redAnswer
{
    color:red;
}