1

我在下面有一个 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;


    }

我想要做的是,如果 astudentanswer匹配 an answer,那么studentanswer它将变成绿色,如果不匹配,则以红色显示不正确的答案,如果完全studentanswer匹配 100%answer则我想要一个变量,例如以绿色$check显示字符串站fully correct如果不是 100% 匹配not full correct,则以红色显示字符串。

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

Answer: B C
Student Answer: B D

上面的输出应该将学生答案显示B为绿色,因为它与答案匹配,B但学生答案D应该是红色,因为没有D答案。该变量$check应显示为红色not fully correct,因为学生的答案并不完全正确,只是部分正确。

但是如何才能做到这一点呢?

更新:

它不会改变文本的颜色:

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;

CSS:

.red{
color: red;
}

.green{
color: green;
}
4

3 回答 3

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; ?>
于 2013-03-08T03:24:05.467 回答
0

您可以使用条件来实现这一点。

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

因此,要检查学生的答案是否与教师的答案相匹配,在循环内,您将添加如下内容:

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

这段代码只是展示了如何实现您想要完成的目标的示例,当然您需要自己制作以完全符合您的需求。

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

于 2013-03-08T03:24:48.943 回答
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;
}
于 2013-03-08T03:30:13.810 回答