私はオンラインクイズを作成していますが、正しい値の数を数えるのに問題があります。各質問には次のHTMLがあります。入力値とフォームフィールド値の一致
<div class="form-group">
<label for="question <?PHP echo $question['id']; ?>"><?PHP echo $question['question']; ?></label>
<input type="hidden" value="<?PHP echo $question['answer']; ?>" name="original_number[]">
<input type="number" class="form-control" name="input_number[]" placeholder="<?PHP echo $question['question']; ?>" required>
</div>
実際の正解が含まれている隠れた入力があります。私はクイズが小学校の子供たちのための数学テストであるので、これで逃げることができると思います。質問と回答はすべてデータベースに格納されているので、私のコードは各質問をループし、上記のHTMLをそれぞれ出力します。
実際にフォームを送信してから各入力を正しい回答と照合すると、これまでに試したことはすべてうまくいかないようですが、私はforeach
を各質問ごとにループしてみましたが、動作するようです。
理想的には、各正解は変数に+1を追加する必要があります。フォームが提出された後、その変数が質問の総数と一致する場合、テストは完了としてマークされます(私はすでにこれのためにコードを用意しています)。
は、ここで私が試した物事のカップルです:
foreach ($original as $key => $value) { echo '<p>'.$key.'</p>'; foreach($value as $k => $v) { echo '<p>'.$k.'</p>'; echo '<p>'.$v.'</p>'; echo '<hr />'; }
^ただ、これには2つのリストを出力番号0-12
foreach ($_POST as $key => $value) { echo '<p>'.$key.'</p>'; foreach($value as $k => $v) { echo '<p>'.$k.'</p>'; echo '<p>'.$v.'</p>'; echo '<hr />'; }
のリストを出力します。最初のリストは0〜12で、次にoriginal_numberの値です。 2番目のリストも0-12で、input_numberの値を出力します。
問題のコードを投稿できますか? 'if($ correct_answer == $ user_answer){...}'のようなものを試しましたか? – sauerburger
投稿したコードはうまくいかなかった。最初の行の$ _POSTビットを除いて、ほとんど同じです。 – Jayp