ポンコツエンジニアのごじゃっぺ開発日記。

いろいろポンコツだけど、気にするな。エンジニアの日々の開発などの記録を残していきます。 自動で収入を得られるサービスやシステムを作ることが目標!!

【PHP】formのmultipleに設定しているselectタグで複数選択したvalueを取得する方法。

HTMLのフォームの入力について、セレクトボックスの複数選択を許可するmultiple属性がついているものに関して、フォーム送信したときに、選択されているvalueすべてを取得する方法を紹介したいと思います。

今回はLaravel上での動作確認としていますが、PHPなら使えるんじゃないかなと思っています。

HTMLソースを書いてみる

今回使用するDOM構成は以下のようにしました。もちろんinputタグとかも必要ですが、ここでは省略しています。

<select class="form-control" name="value1" size="2" multiple>
    <option value="1">1</option>
    <option value="2">2</option>
</select>

このように、nameがvalue1として、複数選択を送信しようと思います。

f:id:ponkotsu0605:20200709182628p:plain

PHPソースを書いてみる

このリクエストについて、Requestクラスvalue1のパラメータをprint_r()を使って出力してみます。

print_r($request->value1);

出力結果は以下のようになります。

2

残念、2つ目のoptionだけしか取得できませんでした。。

HTMLソースを修正してみる

以下のように、nameをvalue1[]のように配列の表記に変更します。

<select class="form-control" name="value1[]" size="2" multiple>
    <option value="1">1</option>
    <option value="2">2</option>
</select>

これで送信してみると・・・

Array ( [0] => 1 [1] => 2 )

無事、配列で選択されているものが取得できました!

お問い合わせプライバシーポリシー制作物