1

変数を yes/no ラジオ タイプにしようとしています。私のスクリプトは次のとおりです。

                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 else でしたが、奇妙な理由で機能しません。「はい」に変更しても「いいえ」しか表示されなくなりました。スクリプトを編集し、長いフィールドと短いフィールド (テキストエリア/入力フィールド) の他の選択肢を追加しました よろしくお願いします。

4

2 に答える 2

0
if ('optie'.$c.'' == 'yes')

この部分は常にfalseと評価されます。

名前は変数 $c の値に依存し、これが問題を引き起こしているため、おそらくこの変数にどのように名前が付けられるかわかりません。

これを克服するには、「optie」文字列で始まるすべての変数を取得し、それらを使用するときに循環させることができます。この変数には、次のようにアクセスすることもできます。

$optionname = 'optie'.$c;
$optionvalue = $$optionname;
// or
$optionvalue = $_POST[$optionname];

しかし、一般的にあなたのコードを見ると、構造が非常に悪いので、そのコードを再構築することを検討します。しかし、これ以上のコンテキストがなければ、これを行う方法についてこれ以上説明することはできません.

アップデート:

上記の条件を次のように変更するだけです。

if ($_POST['optie'.$c] === 'yes')

または、「GET」http 要求を使用して「optie」変数を渡す場合は、$_POST を $_GET に変更します。

于 2012-12-03T08:59:30.653 に答える
0

noこれは決して true に評価できないため、常に表示されます。

if ('optie'.$c.'' == 'yes')

を含む文字列optieは決して一致しませんyes。したがって、値elseを出力するブロックは常に入力されnoます。

于 2012-12-03T09:01:03.240 に答える