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

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

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" />

記事の品質向上のため、感想をお聞かせください。

  • 分かりやすかった・ためになった (14)
  • 分かりにくかった・ためにならなかった (3)
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す

*

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