1

我正在做一个个人项目,这个想法的一部分涉及用户回答五个问题,并且根据回答,它会将您导航到 3 个不同的故事之一。我目前正在使用CSS-Tricks中的一个简单测验作为模板,并且通过使用 elseif 语句对其进行了修改以接受所有正确答案。我现在遇到的问题是,我不完全确定如何根据响应使其指向不同文件之一。

该脚本通过提出问题(如您在网站上看到的,如果您愿意)来工作,这些问题在此处输出、收集和显示。

相对简单,所有“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”的链接。

编辑 2

让它再次工作。傻,傻,傻。感谢你的帮助!

4

2 回答 2

0

代替单个响应变量,为每个答案(A、B 和 C)创建三个单独的变量,并为每个 var 分别添加一个测试结果。然后哪个响应变量有更多结果(最常选择),将是您的总体答案。打破平局将取决于您。

例如,如果我回答测验: 1)A 2)B 3)C 4)A 5)A; 变量应该是:responseA = 3,responseB = 1,responseC = 1。变量响应 A 大于 B 和 C,所以请指出我的响应 A 的故事。

于 2012-12-09T15:41:05.683 回答
-3

我认为 php 不是正确的方法。我使用 javascript 来制作类似的更简单的代码。如果有帮助,我可以给你。只是评论回来!谢谢!

于 2012-12-09T17:04:42.403 回答