• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでテスト形式のプログラムを作ってます)

PHPでテスト形式のプログラムを作成中

このQ&Aのポイント
  • ラジオボタンA,B,C,Dを使って選択し、NEXTボタンを押したら次の問題を表示し、回答をSESSIONの配列に書き込むプログラムを作っています。
  • 配列の番号と中身がクリックしたときの一つしか表示されないので、全部の回答がSESSIONに保存されているかどうか分かりません。
  • データベースに接続し、問題と回答を保存する処理も追加したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

ざっくりと書いてみました。 問題をデータベースから取得する代わりに定型の文字列で代用しています。また回答を保存するのはセッションのみです。適宜改変してみてください。 <?php // セッション初期化 session_start(); if (!isset($_SESSION['answer'])) { $_SESSION['answer'] = array(); } // データベース準備 //$db=mysql_connect("localhost","接続ID","パスワード"); //mysql_set_charset('utf8', $db); //mysql_select_db("データベース名", $db); $sikenbango = 'Q_111'; // 戻り if (isset($_POST['ret'])) { $qno = $_POST['ret'] - 1; } else { if (isset($_POST['no'])) {// 開始?途中? $qno=$_POST["no"]; if (isset($_POST['answer'])) { $_SESSION['answer'][$qno] = $_POST['answer']; } else { $_SESSION['answer'][$qno] = 'no select'; } $qno++; } else { $qno=1; } } if ($qno > 80) { // 80問終了 foreach ($_SESSION['answer'] as $key=>$val) { print $key . '->' . $val . '<br />' . PHP_EOL; } } else { // 出題Form // $res = mysql_query("SELECT * FROM `MONDAI` WHERE SIKENBANGO='$sikenbango' AND MONDAIBANGO='$qno'") or die('sql error'); // $row = mysql_fetch_array($res); $row = array('mondai' => 'テスト用問題' . $sikenbango . ' - ' . $qno); print '第&nbsp;' . $qno . '&nbsp;問目<br />' . PHP_EOL; print $row['mondai'] . '<br />' . PHP_EOL; print '<form method="post" action="" style="display:inline;">' . PHP_EOL; print '<input type="hidden" name="no" value="' . $qno . '">' . PHP_EOL; print '<input TYPE="radio" NAME="answer" VALUE="1">ア' . PHP_EOL; print '<input TYPE="radio" NAME="answer" VALUE="2">イ' . PHP_EOL; print '<input TYPE="radio" NAME="answer" VALUE="3">ウ' . PHP_EOL; print '<input TYPE="radio" NAME="answer" VALUE="4">エ' . PHP_EOL; print '<input type="submit" name="submit" value="Next">' . PHP_EOL; print '</form>' . PHP_EOL; if ($qno > 1) { print '<form method="post" action="" style="display:inline;">' . PHP_EOL; print '<input type="submit" name="submit" value="最初から">' . PHP_EOL; print '</form>' . PHP_EOL; print '<form method="post" action="" style="display:inline;">' . PHP_EOL; print '<input type="hidden" name="ret" value="' . $qno . '">' . PHP_EOL; print '<input type="submit" name="submit" value="戻る">' . PHP_EOL; print '</form>' . PHP_EOL; } }

mamemamesiba
質問者

お礼

ありがとうございます。参考になりました! また機会がありましたら宜しくお願いします。

関連するQ&A