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