使用 PHP 显示基于以前的调查 q 的调查问题的方法


Way to show survey questions based off previous survey q using PHP

所以我们有一个我正在构建的调查,对于这个例子 - 假设Q1有50个选择,他们可以选择一个(单选按钮)

现在在第二季度,我们显示了相同的 50,减去第一季度选择的那个。

我最初的想法是写一个无穷无尽的if语句链,比如

如果 $_REQUEST['Q1'] != 1 ,则回显答案的 HTML 代码如果 $_REQUEST ['q1'] != 2,则回显答案 #2 的 HTML 代码

如您所见,这可能是矫枉过正,并且由于Q1是一个单选按钮,因此只有一个答案。

我什至不确定如何谷歌或搜索答案 - 所以任何建议或建议将不胜感激。我确定我错过了一些非常简单的东西:/

我会将答案存储在一个数组中,键作为某种答案 ID。例如$answers=array(0=>"answerswer 1",1=>"answerswer 2")

然后,在另一个包含键(无论值是什么)的数组中传播所选答案。

当渲染应该出现时,请使用array_diff_key($answers,(array)$_REQUEST['chosenAnswers'])函数并渲染生成的数组。(此函数将根据键返回两个数组之间的差异,并且先前选择的答案不会在生成的数组中)...您可以选择将 HTML 直接存储在数组中,或者只存储答案,并在呈现时在 while 语句中添加 HTML。

像这样:

$answers=array(0=>"answerswer 1",1=>"answerswer 2",...,50=>"answerswer 49");
$chosen=(array)$_request['chosenAnswers'];
$result=array_diff_key($answers,$chosen);
$html="";
while ($answer = current($result)) {
    $html.="<label><input type="radio" name="grp1" value='".key($result)."'/>".$answer."</label>";
next($result);
}
echo $html;

我可能在代码中犯了一些错误,但你明白了:)