ランダム表示させたあとその結果を受け取るには?
小テストのプログラムを作っています。6問ある問題の中からランダムに5問を出題させて、合計点と正解数を表示させることができました。
ただこのままでは回答者はどの問題を間違えたのかがわからないので、出題された問題と解説文を表示させたいのです。
解決のヒントをお願いいたします。
//問題文のページ
<FORM method="POST" action="answer.php">
<?php
$QA[]=array(
"Q"=>array("id"=>"q1","text"=>"質問A")
,"A"=>array(
array("key"=>1,"text"=>"回答A-1")
,array("key"=>2,"text"=>"回答A-2")
,array("key"=>3,"text"=>"回答A-3")
,array("key"=>4,"text"=>"回答A-4")
)
);
.
.
.
.
$QA[]=array(
"Q"=>array("id"=>"q6","text"=>"質問F")
,"A"=>array(
array("key"=>1,"text"=>"回答F-1")
,array("key"=>2,"text"=>"回答F-2")
,array("key"=>3,"text"=>"回答F-3")
,array("key"=>4,"text"=>"回答F-4")
)
);
shuffle($QA);
$q_no=1;
foreach($QA as $arr1){
shuffle($arr1["A"]);
print "問".$q_no." ".$arr1["Q"]["text"]."<br>\n";
foreach($arr1["A"] as $arr2){
$id=$arr1["Q"]["id"]."_".$arr2["key"];
print "<INPUT type=\"radio\" id=\"".$id."\" name=\"".$arr1["Q"]["id"]."\" value=\"".$arr2["key"]."\"><label for=\"".$id."\">".$arr2["text"]."</label><br>\n";
}
if($q_no >= 5){
break;
}
$q_no++;
}
?>
<INPUT type="submit" value=" OK " name=namae>
//解答のページ
<?php
$tokuten = 0;
$seikaisuu = 0;
$answer = $_POST["q1"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = +1;
}
$answer = $_POST["q2"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q3"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q4"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q5"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
$answer = $_POST["q6"];
if($answer == "1"){
$tokuten = $tokuten+5;
$seikaisuu = $seikaisuu+1;
}
print "正解数 " . $seikaisuu . "問";
print "<br>";
print "合計点 " . $tokuten . "点";
?>
お礼
どうも・・・