LoginSignup
0
0

PHPで四択問題を作成する方法解説【サンプルソースコードあり】

Last updated at Posted at 2023-06-17

2020年10月20日に書いた記事です。

今回はプログラミング言語のPHPを使用して四択問題を作成する方法を簡単に説明します!

最初に実際にどんなものを作るのかやソースコードを提示してから詳しく解説していきます。

今回作る四択問題のWeb画面

問題(index.php)

<?php
  $question = array('apple','grape','peach','pear');
  $answer = $question[0];
  shuffle($question);
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PHP四択問題</title>
  </head>
  <body>
    <h2><?php echo 'リンゴを英語で?' ?></h2>
      <form method="POST" action="answer.php">
        <?php foreach($question as $value){ ?>
        <input type="radio" name="question" value="<?php echo $value; ?>" /> <?php echo $value; ?><br>
        <?php } ?>
        <input type="hidden" name="answer" value="<?php echo $answer ?>">
        <input type="submit" value="回答する">
      </form>
  </body>
</html>

答え(answer.php) 

<?php
  $question = $_POST['question'];
  $answer = $_POST['answer'];
    if($question == $answer){
	    $rs = "正解";
    }else{
	    $rs= "不正解";
  }
?>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>PHP四択問題結果</title>
  </head>
  <body>
    <h2>クイズ結果</h2>
    <?php echo $rs ?>
  </body>
</html>

プログラム解説

問題(index.php)

<?php
  $question = array('apple','grape','peach','pear');
  $answer = $question[0];
  shuffle($question);
?>
  1. $questionという変数配列に4つの選択肢を格納する。
  2. $answerに正解の場所を指定する。(今回は0番目='apple')
  3. shuffle関数を使い配列をシャッフルし要素の順番をランダムにする。`
<form method="POST" action="answer.php">
   <?php foreach($question as $value){ ?>
   <input type="radio" name="question" value="<?php echo $value; ?>" /> <?php echo $value; ?><br>
   <?php } ?>
   <input type="hidden" name="answer" value="<?php echo $answer ?>">
   <input type="submit" value="回答する">
</form>
  1. <form method="" action=""></form>を使いmethodでデータの送信形式を指定し、actionでデータの送信先を指定する。(今回は送信形式をPOST、データの送信先をanswer.phpに指定)
  2. foreachで配列の要素の分だけ繰り返します。(今回は$questionに4つ格納されているので4回繰り返される)なので$questionを3つにしたら3択問題などを作ることができたりします。
  3. type="radio"でラジオボタン作成、$questionに選択した回答と$answerに答えを格納しデータを送信する
  4. type="hidden"で正解の回答はHTMLで表示させないようにします。

答え(answer.php) 

<?php
  $question = $_POST['question'];
  $answer = $_POST['answer'];
  if($question == $answer){
	  $rs = "正解";
  }else{
	  $rs= "不正解";
  }
?>
  1. $_POSTでindex.phpから送られてきたquestionとanswerの内容を受け取る。
  2. questionとanswerの内容があっていれば正解、違うなら不正解。

ざっと解説させていただきました。結構単純なプログラムで四択問題を作成することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0