2017-08-31 83 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 />'; }

^只是輸出數字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 />'; }

此輸出2所列出的清單。第一個列表是0-12,然​​後是original_number的值。第二個列表也是0-12,並輸出input_number的值。

+0

你可以發佈沒有用的代碼嗎?你試過類似'if($ correct_answer == $ user_answer){...}'嗎? – sauerburger

+0

發表了我試過的代碼沒有工作。除了第一行的$ _POST位之外,它幾乎完全相同。 – Jayp

回答

0

除非你用JS檢查答案,否則沒有理由把答案放在隱藏的輸入中。

將您的輸入命名爲與answers數組對齊,並將其全部循環。

+0

謝謝德魯,我對這一切都很陌生,所以陣列和這樣的東西仍然略微超出我的頭。我已經刪除了隱藏的輸入。我不確定如何做你的第二點,但請你能提供一些關於那部分的額外信息? – Jayp

+0

排序它!謝謝你的幫助 :) – Jayp