2017-08-31 12 views
0

私はオンラインクイズを作成していますが、正しい値の数を数えるのに問題があります。各質問には次の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の値を出力します。

+0

問題のコードを投稿できますか? 'if($ correct_answer == $ user_answer){...}'のようなものを試しましたか? – sauerburger

+0

投稿したコードはうまくいかなかった。最初の行の$ _POSTビットを除いて、ほとんど同じです。 – Jayp

答えて

0

JSとの回答を確認しない限り、隠れた入力に答えを入れる理由はありません。

名前を入力してanswers配列を整列させ、すべてをループします。

+0

ありがとうございましたドリュー、私はこのすべての配列にかなり新しいので、それでも私の頭を少し上に行く。私は今、隠された入力を削除しました。私はあなたの2番目のポイントを行う方法については分かりませんが、その部分にいくつかの追加情報を提供できますか? – Jayp

+0

ソート済み!ご協力いただきありがとうございます :) – Jayp

関連する問題