我在下面有一个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;
}
我想要做的是,如果studentanswer
与answer
匹配,则studentanswer
将变为绿色,如果不匹配,则显示红色的错误答案,如果已满studentanswer
与answer
匹配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;
答案 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;
}