我整理了一个由数据库驱动的测验。在这个特定的例子中,所有问题都是多项选择,除了#2,这是填空。
在显示页面上,我想显示所有问题和答案 - 与主页非常相似,只是答案的样式显示正确和错误的答案。默认样式为黑色背景和白色文本(错误答案),正确答案为浅蓝色背景和黑色文本。
我可以轻松地做到这一点,因为数据库值1和2(字段正确)区分正确答案和错误答案。
这是一个棘手的部分:我想显示一个背景图像,其中包含用户选择的答案。如果用户选择了正确答案,则该行具有浅蓝色背景和背景图像(star.png)。如果用户选择了错误的答案,则该行为黑色,带有白色文本和图像check.png。
我只想弄清楚它是否自动化。
以下是问题的代码......
$QA = ' <li id="q'.$QID.'">
<div class="Question" style="padding-bottom: 5px; border-bottom: 1px solid #000;">'.$QA.'</div>
这是多项选择题的代码......
$QA = ' <div class="Answer '.$Value.'">
<label for="q'.$QID.'-'.$Value.'"><div class="Radio" style="'.$StyleSC.'"><input type="radio" name="q'.$QID.'" id="q'.$QID.'-'.$Value.'" value="'.$Value.'" style="display: none;"> '.$Value.'. '.$QA.'</div></label></div>
';
这是它显示的HTML示例:
<form action="grade.php?previous=/test/gw-intro-1" method="post" id="quiz">
<ol>
<li style="display: none;">
</li>
<li id="q1">
<div class="Question">No one knows if there’s just one universe or a series of universes, sometimes referred to as a:</div>
<div class="Answer">
<label for="q1-A"><div class="Radio"><input type="radio" name="q1" id="q1-A" value="A" style="display: none;"> A. multiverse</div></label></div>
<div class="Answer">
<label for="q1-B"><div class="Radio"><input type="radio" name="q1" id="q1-B" value="B" style="display: none;"> B. parallel universe</div></label></div>
<div class="Answer">
<label for="q1-C"><div class="Radio"><input type="radio" name="q1" id="q1-C" value="C" style="display: none;"> C. constellation</div></label></div>
<div class="Answer">
<label for="q1-D"><div class="Radio"><input type="radio" name="q1" id="q1-D" value="D" style="display: none;"> D. black hole</div></label></div>
</li>
这是评分机制:
$answer1 = $_POST['q1'];
$answer2 = $_POST['q2'];
$answer3 = $_POST['q3'];
$answer4 = $_POST['q4'];
$answer5 = $_POST['q5'];
$answer6 = $_POST['q6'];
$answer7 = $_POST['q7'];
$answer8 = $_POST['q8'];
$answer9 = $_POST['q9'];
$answer10 = $_POST['q10'];
$totalCorrect = 0;
if ($answer1 == "A") { $totalCorrect++; }
if ($answer2 == "Jupiter") { $totalCorrect++; }
if ($answer3 == "C") { $totalCorrect++; }
if ($answer4 == "D") { $totalCorrect++; }
if ($answer5 == "A") { $totalCorrect++; }
if ($answer6 == "C") { $totalCorrect++; }
if ($answer7 == "C") { $totalCorrect++; }
if ($answer8 == "B") { $totalCorrect++; }
if ($answer9 == "B") { $totalCorrect++; }
if ($answer10) { $totalCorrect++; }