所以我们有一个我正在构建的调查,对于这个例子 - 假设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;
我可能在代码中犯了一些错误,但你明白了:)