PHP で select タグの multiple オプションを POST で受ける方法とその応用


select タグのオプションに multiple を付けた場合、selectタグのnameオプションを「name=”select[]”」のように書く。

<form method="post" action="******.php">
  <select name="select[]" multiple>
    <option value="opt_1">option1</option>
    <option value="opt_2">option2</option>
    <option value="opt_3">option3</option>
    <option value="opt_4">option4</option>
    <option value="opt_5">option5</option>
    <option value="opt_6">option6</option>
  </select>
</form>

そして受け側で

print_r($_POST);

としてみると以下のような配列で受け取れる。

Array
(
  [select] => Array
    (
      [1] => option1
      [2] => option2
      [3] => option3
    )
)

さらにこれはselectタグに限らず、ほかのinputタグなどでも応用できる。

<form method="post" action="******.php">
  <input type="text" name="hoge" value="ほげほげ" />

  <input type="text" name="hoge1[u]" value="うがうが" />
  <input type="text" name="hoge1[d]" value="どんどん" />
  <input type="text" name="hoge1[p]" value="ぴよぴよ" />

  <input type="text" name="hoge2[]" value="もげもげ" />
  <input type="text" name="hoge2[]" value="うらうら" />
  <input type="text" name="hoge2[]" value="むだむだ" />
</form>

とすると、、、

Array
(
  [hoge] => ほげほげ
  [hoge1] => Array
    (
      [u] => うがうが
      [d] => どんどん
      [p] => ぴよぴよ
    )

  [hoge2] => Array
    (
      [0] => もげもげ
      [1] => うらうら
      [2] => むだむだ
    )
)

となる。

う~ん。PHPさん、、、、、ちょっと無理矢理感が・・・・・

あれ?あれ?これは、はいぱ~・てきすと・とらんすふぁ・ぷろとこる の仕様ってこと???




コメントを残す

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