我正在尝试变量是/否无线电类型。 我的剧本是:
while ($row1 = mysql_fetch_assoc($vragen))
{
$type = $row1['type'];
if ($type == 'kort')
{
echo '
<tr>
<td width="60%">'
.$row1['vraag'].'
<input type="hidden" name="vragen'.$aantalBranches.'[]" value="'.$row1['vraag'].'"/>
</td>
<td>
<input type="text" name="antwoorden'.$aantalBranches.'[]"/>
</td>
</tr>';
}
elseif ($type == 'lang')
{
echo '
<tr>
<td width="60%">'
.$row1['vraag'].'
<input type="hidden" name="vragen'.$aantalBranches.'[]" value="'.$row1['vraag'].'"/>
</td>
<td><textarea name="antwoorden'.$aantalBranches.'[]" cols="30"rows="5"></textarea><td/>
</tr>';
}
elseif ($type == 'ja,nee')
{
echo'
<tr>
<td width="60%">'
.$row1['vraag'].'
</td>
<td>
<input type="radio" name="optie'.$c.'" value="yes">Yes
<input type="radio" name="optie'.$c.'" value="no">No
</td>';
if ('optie'.$c.'' == 'yes')
{
echo'
<td><input type="hidden" name="vragen'.$aantalBranches.'[]" value="'.$row1['vraag'].'"/></td>
<td><input type="text" name="antwoorden'.$aantalBranches.'[]" value="yes"/></td>
</tr>';
}
else
{
echo'
<td><input type="hidden" name="vragen'.$aantalBranches.'[]" value="'.$row1['vraag'].'"/></td>
<td><input type="text" name="antwoorden'.$aantalBranches.'[]" value="no"/></td>
</tr>';
}
$c++;
}
}
echo '</table>';
$aantalBranches++;
}
问题是我希望结果存储在1变量$ antwoorden []中,所以最逻辑的方法是if if for this但是由于一个奇怪的原因它不起作用any1可以帮助我吗? 它现在只显示“否”,即使我将其改为“是”。 我编辑了脚本并添加了表格长短字段的其他选择(textarea / inputfield) 提前谢谢。
答案 0 :(得分:0)
if ('optie'.$c.'' == 'yes')
此部分将始终评估为 false 。
您可能不知道如何命名此变量,因为name取决于变量$ c的值,这就是给您带来困难的原因。
为了解决这个问题,您可以将所有以'optie'字符串开头的变量拉出来,然后在想要使用它们时循环显示它们。您也可以像这样访问此变量。
$optionname = 'optie'.$c;
$optionvalue = $$optionname;
// or
$optionvalue = $_POST[$optionname];
但总的来说,看看你的代码,结构非常糟糕,我会考虑重组代码。但是如果没有更多的背景,我无法给你更多关于如何做到这一点的说明。
<强>更新强>
只需将上述条件更改为:
if ($_POST['optie'.$c] === 'yes')
如果您使用'GET'http请求传递'optie'变量,请将$ _POST更改为$ _GET。
答案 1 :(得分:0)
它总是显示no
,因为它永远不能评估为真:
if ('optie'.$c.'' == 'yes')
包含optie
的字符串永远不会匹配yes
。因此,始终输入else
块,输出no
值。