0

このような多肢選択式クイズの質問があるphpページがあります

<p>1. Is Manhattan near New York?<br>
    <input type="radio" name="ans1" value="3">
    Yes<br>
    <input type="radio" name="ans1" value="2">
    Maybe<br>
    <input type="radio" name="ans1" value="1">
    No</p>
  <p>2. Do you like Indian food?<br>
    <input type="radio" name="ans2" value="1">
    Some times<br>
    <input type="radio" name="ans2" value="3">
    Never<br>
    <input type="radio" name="ans2" value="2">
    Always</p>

ページはそれ自体に投稿し、このように答えが正しいか間違っているかを確認します

if($ans1 == "3") { 
$test_complete .="Question one is <span class='green'>correct</span>, well done!<br/>";  
}else{ 
$test_complete .="Question one is <span class='red'>incorrect</span>!<br/>"; 
} 
// change the quest2 to the right answer
if($ans2 == "2") { 
$test_complete .="Question two is <span class='green'>correct</span>, well done!<br/>"; 
}else{ 
$test_complete .="Question two is <span class='red'>incorrect</span>!<br/>"; 
}

ここで、1 つまたは 2 つの回答が正しいことをユーザーに伝える代わりに、正しい回答の数と間違った回答の数を計算し、それを 2 つのテーブル ボックスと合計質問数の 1 つのボックスに表示するカウンターを実行したいと思います。

4

3 に答える 3

1

このような...?

$result = $ans1 == 3;
$result += $ans2 == 2;
$result += $ans3 == 1;

echo "You got $result/3 questions right";

http://codepad.org/6zBQXQIT

于 2012-05-07T10:48:27.003 に答える
1

これを行うには複数の方法があります。質問に対応する正しい質問の配列があり、それらを比較します。例えば:

$correct_answers = array('3', '2');
for ($i = 0; $i < $number_of_questions; $i++)
{
   $ans_var = 'ans'.$i;
   if ($_POST[$ans_var] == $correct_answers[$i])
   {
      $score++;
   }
}
于 2012-05-07T10:49:50.673 に答える
0

質問を正しく理解すれば...

session_start();
if (!isset($_SESSION['total'])){$_SESSION['total']=0;}
if (!isset($_SESSION['correct'])){$_SESSION['correct']=0;}
if($ans1 == "3") {$_SESSION['correct']+=1;}
if($ans2 == "2") {$_SESSION['correct']+=1;}
if (isset($ans1) || isset($ans2)) {$_SESSION['total']+=1}
echo '<table><tr><td>Correct answers:</td><td>'.$_SESSION['correct'].'</td></tr>';
echo '<tr><td>Wrong answers:</td><td>'.$_SESSION['total']-$_SESSION['correct'].'</td></tr>';
echo '<tr><td>Total answers</td><td>'.$_SESSION['total'].'</td></tr></table>';
于 2012-05-07T10:53:43.733 に答える