前提・実現したいこと
ド初心者です。
PHPで、音感クイズを作っています。
ボタンクリックで全4種類の音からランダムに鳴らして、その音階を4択から選ぶものです。
該当のソースコード
PHP
1$oto = array('oto/a.mp3','oto/i.mp3','oto/u.mp3','oto/e.mp3',); 2$randoto = array_rand($oto,1); 3 4 5//answer.php 6$question = $_POST['question']; 7$answer = $_POST['answer']; 8 9if($question == $answer){ 10 echo "正解"; 11}else{ 12 echo "不正解"; 13}
HTML
1//音の再生ボタン 2<a onclick="sound()"><div class="btn">再生</div></a> 3<audio id="sound-file" preload="auto"> 4 <source src="<?php echo $oto[$randoto]; ?>"> 5</audio> 6 7//ラジオボタン 8<form action="answer.php" method="post"> 9 <input type="radio" name="question" value="<?php echo $oto['0']; ?>">選択肢A<br> 10 <input type="radio" name="question" value="<?php echo $oto['1']; ?>">選択肢B<br> 11 <input type="radio" name="question" value="<?php echo $oto['2']; ?>">選択肢C<br> 12 <input type="radio" name="question" value="<?php echo $oto['3']; ?>">選択肢D<br> 13 <input type="hidden" name="answer" value="<?php $oto[$randoto]; ?>"> 14 <input type="submit" name="" value="回答"> 15</form>
発生している問題・エラーメッセージ
正解になりません。
上記コードで、answer.phpに「不正解」までは表示されるところまで来ています。
自分の認識としては、
HTML
1<audio id="sound-file" preload="auto"> 2 <source src="<?php echo $oto[$randoto]; ?>"> 3</audio>
の部分でランダムに選ばれた音と、選択肢ごとのvalue
のうちひとつは同じものと思っていました。
考え方が間違いなのか、他に適切な方法があるのか、それとも単純に書き間違いがあるのか、
どんなことでも助言いただければ幸いです。
試したこと
とりあえず、$oto[$randoto]
を2回書いたときに中身が変わっていないかを念の為確認したく、
<p><?php echo $oto[$randoto]; ?></p> <p><?php echo $oto[$randoto]; ?></p>
と書いて
oto/a.mp3
oto/a.mp3
になるのを確認しました。
また、
<p><?php echo $oto[0]; ?></p>
も同様に
oto/a.mp3
と表示されます。
これを照合して正誤判定ができると思っていたのですが違うのでしょうか。
補足情報(FW/ツールのバージョンなど)
HTML5
PHP7.3.4
XAMPP Version: 7.3.4
Control Panel Version: 3.2.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 12:43
2019/04/17 12:46