是/否变量无线电选项

时间:2012-12-03 08:53:42

标签: php html forms

我正在尝试变量是/否无线电类型。 我的剧本是:

                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) 提前谢谢。

2 个答案:

答案 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值。