我正在開展一個個人項目,這個想法的一部分涉及用戶回答五個問題,根據回答,它將導航到三個不同的故事中的一個。我目前使用CSS-Tricks的一個簡單測驗作爲模板,我修改它以通過使用elseif語句接受所有正確答案。我現在的問題是,我不完全確定如何根據響應指向不同文件之一。使用PHP和HTML的「測驗」
該腳本通過詢問問題(如您可以在網站上看到的,如果您願意的話),在此輸出,收集並顯示。
所有「A」答案都指向一個故事,所有「B」答案都指向另一個故事,而「C」指向相同。顯然,由於我試圖編輯的測驗的性質,它想要對它們進行「評級」而不是收集結果並根據這些結果做出決定。
<?php
$answer1 = $_POST['question-1-answers'];
$answer2 = $_POST['question-2-answers'];
$answer3 = $_POST['question-3-answers'];
$answer4 = $_POST['question-4-answers'];
$answer5 = $_POST['question-5-answers'];
$responseA = 0;
$responseB = 0;
$responseC = 0;
if ($answer1 == "A") { $responseA++; }
elseif ($answer1 == "B") {$responseB++; }
elseif ($answer1 == "C") {$responseC++; }
if ($answer2 == "A") { $responseA++; }
elseif ($answer2 == "B") {$responseB++; }
elseif ($answer2 == "C") {$responseC++; }
if ($answer3 == "A") { $responseA++; }
elseif ($answer3 == "B") {$responseB++; }
elseif ($answer3 == "C") {$responseC++; }
if ($answer4 == "A") { $responseA++; }
elseif ($answer4 == "B") {$responseB++; }
elseif ($answer4 == "C") {$responseC++; }
if ($answer5 == "A") { $responseA++; }
elseif ($answer5 == "B") {$responseB++; }
elseif ($answer5 == "C") {$responseC++; }
if ($responseA) { echo '<a href="sin.php">Next Page</a>'; }
elseif ($responseB) { echo '<a href="mys.php">Next Page</a>'; }
elseif ($responseC) { echo '<a href="ils.php">Next Page</a>'; }
?>
所以,如果有人能指出我在正確的方向,我會很感激。聽起來很簡單,但它比我爲學習項目計劃的要複雜得多!
編輯
我已經更新了代碼,以反映cbronson的建議,它肯定工作比以前好了很多!我現在面臨的問題是,似乎responseC沒有被計算在內。前兩個變量工作正常,任何組合都會導致A或B,但是當我選擇甚至全部C時,它會將鏈接指向「mys.php」,而不是「ils.php」。
EDIT 2
得到它再次合作。傻,傻,傻。感謝你的幫助!
當你有幾個名爲「answer1」,「answer2」等的變量時,你應該改用一個數組。 –
爲什麼要使用'$ response ++'而不是'$ responseA ++'或'$ responseB ++'或'$ responseC++'? –
啊,這實際上是從代碼的早期版本(cbronson的回覆之前),我只是忘了更新它。我道歉,我現在編輯。 – Craig