我正在处理一个个人项目,部分想法涉及用户回答五个问题,并根据回答,它会引导您进入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时,它会向#34; mys.php&#34;发出链接。而不是&#34; ils.php&#34;。
编辑2
让它再次运作。傻,傻,傻。谢谢你的帮助!
答案 0 :(得分:0)
而不是单个响应变量,为每个答案(A,B和&amp; C)创建三个单独的变量,并为每个测试结果的每个var添加一个。然后,无论哪个响应变量有更多结果(最常选择),将是您的总体答案。领带打破将取决于你。
例如,如果我回答测验:1)A 2)B 3)C 4)A 5)A;变量应该是:responseA = 3,responseB = 1,responseC = 1.变量响应A大于B和C,所以指向响应A的故事。
答案 1 :(得分:-3)
我认为php不是正确的方法。我使用javascript来制作像这样的simaler代码。如果它有帮助我可以给你。回复一下吧!谢谢!