HTMLのselectタグにmultiple属性を指定したときに、複数選択したデータをphpで受け取るサンプルコードです。
サンプルコード
複数選択したデータをphpで受け取るサンプルコードが以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<form action='./selects.php' method='GET'> <select name="multiple[]" multiple="multiple"> <option value=""></option> <option value="1">Option1</option> <option value="2">Option2</option> <option value="3">Option3</option> <option value="4">Option4</option> <option value="5">Option5</option> </select> <input type="submit"> </form> <?php if (isset($_GET['multiple'])) { var_dump($_GET['multiple']); } ?> |
このコードが実行されると、以下のような画面が実行されます。

プルダウンをshiftボタンを押しながらクリックすると複数選択することができるので、そのまま送信してみましょう。
すると、画面遷移後にプルダウンのしたに以下のような配列がdumpされ流ので、正しく動作していることがわかると思います。
1 2 3 4 5 6 7 8 9 |
array(5) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" [3]=> string(1) "4" [4]=> string(1) "5" } |
サンプルコードの解説
selectタグの属性にmultipleを指定したプルダウンから、複数選択したデータを取得するためには、name属性を
1 2 3 |
name="sample" |
と、単に名前を指定するだけではphpが複数選択のプルダウンだということを正しく認識することができません。
したがって、
1 2 3 |
name="sample[]" |
というふうに、sampleが配列であることを[]を付けることによって明示的に記述する必要があります。