1

私はhtmlフォームを持っています

<form action="process.php" method="post">

    <input type="checkbox" name="name[v1]"  />
    <input type="checkbox" name="name[v2]"  />
    <input type="checkbox" name="name[v3]"  />
    <input type="submit" name="update" value="update">
</form>

チェックボックスが1つしかない場合は、そのチェックボックスのみが表示されます

配列([\'v3 \'] => on)

3つすべてのチェックボックスをオンにすると、すべてが表示されます。

Array
(
    [\'v1\'] => on
    [\'v2\'] => on
    [\'v3\'] => on
)

チェックされていなくても、チェックボックスをすべて表示できる方法はありますか。

process.php

foreach( $_POST['name'] as $k => $v )
{
   echo "key: ".$k;
}
4

1 に答える 1

2

「チェック済み」属性が設定されていない場合、チェックボックスとラジオボタンは処理スクリプトに渡されません。これは設計によるHTML4です。

状態を設定できる唯一の方法は、次のようなものを使用することです。

if(!isset($_POST['mycheckbox'])){ $_POST['mycheckbox'] = 0; }

またはそれ以上:

$_POST['mycheckbox'] = isset($_POST['checkbox']);

ラジオボタンに関しては、最初のバージョンのみを使用する必要があります。ラジオボタンには複数の値を設定できるため、ラジオボタンにTRUE / FALSEを設定する代わりに、デフォルト値を設定する必要があります。

別の注意点として、DISABLED要素は投稿されません。値があったとしても、表示されることはありません。これはHTML4+のもう1つの設計機能です。

于 2012-06-21T20:17:08.840 に答える