为测验答案设置样式的数组或正则表达式

时间:2015-01-16 01:27:03

标签: php css regex

我整理了一个由数据库驱动的测验。在这个特定的例子中,所有问题都是多项选择,除了#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&#8217;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++; }

0 个答案:

没有答案