2013-04-11 142 views
0

我有一個包含多項選擇複選框的測試窗體。隱藏測試的正確答案

每個答案都來自WordPress的拉,就是一個循環中,每個個體複選框以下列方式輸出:

<input type="checkbox" name="answer[]" value="<?php echo $row['answer']; ?>" /> 

在WordPress相鄰的答案是一個複選框,如果選中,那麼就意味着它的正確答案。這是與輸出:

$row['correct']; 

我怎樣才能將數據傳遞到另一個頁面,以檢查用戶檢查答案是否正確或不無允許用戶查看源代碼才能看到答案?

在第二頁我用下面的輸出答案的用戶檢查:

$answer = implode(", ",$_POST["answer"]); 
echo $answer; 

顯然,這些都是從表單中輸入拉。我如何檢查每一個是否正確?這個

回答

1

它看起來像你存儲一個JavaScript陣列

<input type="checkbox" name="answer[]"...的答案,這可能是由PHP(在任何一個頁面的形式張貼到)通過以下閱讀:

$answers = json_decode($_POST['answer'])

這是假設你的形式使用POST方法,否則更改$_POST$_GET

從那裏可以使用包含條件表達式的for()循環來循環陣列,即if($answers[$i] !== $correctAnswers[$i]) $wrongAnswers++ else $correctAnswers++或類似的。

這一切發生在服務器端,將不能被客戶看到。

由於用戶將被張貼到在表單提交的計算網頁,你可以使用header('Location: results.php');來引導他們從一個空白頁了。它應該包含在得分計算循環後的腳本末尾。

想想吧,如果您計劃通知用戶他們是怎麼做的,那麼您可能需要將得分存儲在$_SESSION[]中,因此可以從結果頁面讀取它。

0

兩種可行的方法,因爲我看到它:

  1. 號碼的問題,然後在你的PHP文件中的開關語句(或地圖),以獲取正確答案的問題,並檢查就這樣。

  2. 組的下一個正確的值到每個頁面上的會話,並在生成的PHP頁面閱讀。

第一個選項可能會更可取。