checkboxのnameを配列にした時の挙動。

PHPの場合です。
PHPはそこそこ触ってると思っていたのですが、
POSTした時にどう振る舞うのかということを把握していませんでした。
サンプルを作って確認してみます。

HTML

  <input type="checkbox" name="box[]" />
  <input type="checkbox" name="box[]" />
  <input type="checkbox" name="box[]" />
これをPOSTすると、$_POSTの中身は、

チェックしなかった場合。

array(0) {
}

3つともチェックした場合。

array(1) {
  ["box"]=>
  array(3) {
    [0]=>
    string(2) "on"
    [1]=>
    string(2) "on"
    [2]=>
    string(2) "on"
  }
}
今回ハマったのは、 チェックがない場合に「空」さえも返ってこないということ。 なので、チェックされてないときはisset()でチェックして空だということを判別するコードを書かなければならないという点でしたね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA