1

私は個人的なプロジェクトに取り組んでおり、アイデアの一部には、ユーザーが5つの質問に答えることが含まれ、回答に応じて、3つの異なるストーリーのいずれかに移動します。現在、 CSS-Tricksの簡単なクイズをテンプレートとして使用しており、elseifステートメントを使用して、すべての回答を正解として受け入れるように変更しました。私が今抱えている問題は、応答に基づいて異なるファイルの1つを指すようにする方法が完全にはわからないということです。

スクリプトは、ここに出力され、収集され、表示される質問をすることによって機能します(必要に応じて、サイトで確認できます)。

すべての「A」の回答が1つのストーリーを指し、すべての「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がカウントされていないように見えることです。最初の2つの変数は完全に機能しており、これらを任意に組み合わせるとAまたはBになりますが、すべてのCを選択すると、「ils.php」ではなく「mys.php」へのリンクが出力されます。

編集2

再び動作しました。愚かな、愚かな、愚かな。ご協力ありがとうございます!

4

2 に答える 2

0

単一の応答変数の代わりに、回答ごとに3つの個別の変数(A、B、およびC)を作成し、テスト結果のそれぞれの変数に1つ追加します。次に、より多くの結果が得られた(最も頻繁に選択された)応答変数が全体的な答えになります。タイブレークはあなた次第です。

たとえば、クイズに次のように答えると、1)A 2)B 3)C 4)A 5)A; 変数は次のようになります。responseA=3、responseB = 1、responseC =1。変数responseAはBおよびCより大きいので、応答Aのストーリーを示してください。

于 2012-12-09T15:41:05.683 に答える
-3

私はphpがこれと一緒に行く正しい方法ではないと思います。私はjavascriptを使用して、そのようなシマラーコードを作成しました。それが助けになれば私はあなたにそれを与えることができます。コメントしてください!ありがとう!

于 2012-12-09T17:04:42.403 に答える