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);
?>
-
$question
という変数配列に4つの選択肢を格納する。 -
$answer
に正解の場所を指定する。(今回は0番目='apple') - 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>
-
<form method="" action=""></form>
を使いmethodでデータの送信形式を指定し、actionでデータの送信先を指定する。(今回は送信形式をPOST、データの送信先をanswer.phpに指定) - foreachで配列の要素の分だけ繰り返します。(今回は
$question
に4つ格納されているので4回繰り返される)なので$question
を3つにしたら3択問題などを作ることができたりします。 - type="radio"でラジオボタン作成、
$question
に選択した回答と$answer
に答えを格納しデータを送信する - type="hidden"で正解の回答はHTMLで表示させないようにします。
答え(answer.php)
<?php
$question = $_POST['question'];
$answer = $_POST['answer'];
if($question == $answer){
$rs = "正解";
}else{
$rs= "不正解";
}
?>
-
$_POST
でindex.phpから送られてきたquestionとanswerの内容を受け取る。 - questionとanswerの内容があっていれば正解、違うなら不正解。
ざっと解説させていただきました。結構単純なプログラムで四択問題を作成することができます。