PHPのフォームで多次元配列を使う

PHPはコード内で多次元配列を用いることができますが、HTMLのフォームからデータを送信させるときにも多次元配列でデータを送信させることができます。

以下のようなHTMLを書いてみます。

<form action="hoge.php" method="post">
<h3>1人目の予約</h3>
お名前:
<input name="person[0][name]" type="text" />
年齢:
<input name="person[0][age]" type="text" />
 
<h3>2人目の予約</h3>
お名前:
<input name="person[1][name]" type="text" />
年齢:
<input name="person[1][age]" type="text" />
<input type="submit" value="送信" />
</form>
<?php var_dump($_POST); ?>

これに値を入れて表示してやると、

array(1) {
  ["person"]=>
  array(2) {
    [0]=>
    array(2) {
      ["name"]=>
      string(12) "山田太郎"
      ["age"]=>
      string(2) "25"
    }
    [1]=>
    array(2) {
      ["name"]=>
      string(12) "山田花子"
      ["age"]=>
      string(2) "23"
    }
  }
}

見事に配列+ハッシュにデータが入っていますね。
これならJQueryとかで「予約者の追加」とかを作ってガンガン足していくこともできるよね。

ちなみに、以下のような書き方では意図した動作をしないので注意。インデックスは自分で指定してやる必要があるようです。

1
2
3
4
お名前:
<input name="person[][name]" type="text" />
年齢:
<input name="person[][age]" type="text" />

感想をお聞かせください。

  • ためになった・面白かった (25)
  • ためにならなかった・面白くなかった (10)

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)