0

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

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

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

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

ETC

正如您所看到的,这可能有点矫枉过正,因为 Q1 是一个单选按钮,所以只有一个答案。

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

4

1 回答 1

0

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

然后,将选择的答案传播到另一个包含请求的键(无论值是什么)的数组中。

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

像这样的东西:

$answers=array(0=>"answer 1",1=>"answer 2",...,50=>"answer 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;

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

于 2012-05-02T02:21:23.647 回答