HTML Formのselectタグにmultiple属性を指定したときに、複数選択したデータをphpで受け取ることができます。
プルダウンメニューを「shift」または「Ctrl」ボタンを押しながらクリックすると複数選択することができます。
<form action='./yyyyy.php' method='POST'>
<select name="xxxxx[]" multiple> <!-- nameの書き方に注意、配列であることを表わす[]を付けます。 -->
<option value="1">select 1</option>
<option value="2">select 2</option>
<option value="3">select 3</option>
</select>
<input type="submit" name="send" value="送信">
</form>
<?php
if (isset($_REQUEST['send'])) { //送信ボタンがクリックされた場合実行
print_r($_REQUEST["xxxxx"]);
}
?>
これまでのHTMLおよびPHPをまとめて、.phpファイルを作成しました。
<!DOCTYPE html>
<html>
<!-- http://alphasis.info/2012/11/php-gyakubiki-form-post-multiple/ -->
<head>
<meta charset = “UFT-8”>
<title>フォームからデータを受け取る</title>
<style>
select{
background:#f5f5f5;
}
</style>
</head>
<body>
<h1>PHP で select要素の複数選択の値を受け取る方法(デモ)<br> - select multiple属性</h1>
<form method="post" action="#">
<label>● 好きな果物(Windowsの場合は、「Shift」または「Ctrl」キーを押しながら、複数選択します)</label><br>
<select name="fruits[]" multiple size="10">
<option value="アボカド">アボカド</option>
<option value="あんず">あんず</option>
<option value="いちご">いちご</option>
<option value="イチジク">イチジク</option>
<option value="梅">梅</option>
<option value="オレンジ">オレンジ</option>
<option value="柿">柿</option>
<option value="かぼす">かぼす</option>
<option value="キウイフルーツ">キウイフルーツ</option>
<option value="栗">栗</option>
<option value="グレープフルーツ">グレープフルーツ</option>
<option value="さくらんぼ">さくらんぼ</option>
<option value="ザクロ">ザクロ</option>
<option value="じゃばら">じゃばら</option>
<option value="スイカ">スイカ</option>
<option value="すだち">すだち</option>
<option value="ドラゴンフルーツ">ドラゴンフルーツ</option>
<option value="ドリアン">ドリアン</option>
<option value="パイナップル">パイナップル</option>
<option value="パッションフルーツ">パッションフルーツ</option>
<option value="バナナ">バナナ</option>
<option value="パパイヤ">パパイヤ</option>
<option value="びわ">びわ</option>
<option value="ブドウ">ブドウ</option>
<option value="プラム">プラム</option>
<option value="ブルーベリー">ブルーベリー</option>
<option value="マンゴー">マンゴー</option>
<option value="マンゴスチン">マンゴスチン</option>
<option value="みかん">みかん</option>
<option value="ミラクルフルーツ">ミラクルフルーツ</option>
<option value="メロン">メロン</option>
<option value="桃">桃</option>
<option value="ゆず">ゆず</option>
<option value="洋梨">洋梨</option>
<option value="ライチ">ライチ</option>
<option value="りんご">りんご</option>
<option value="レモン">レモン</option>
<option value="和梨">和梨</option>
</select><br>
<label>● 好きな色</label><br>
<input type="checkbox" name="colors[]" value="白色">白
<input type="checkbox" name="colors[]" value="黒色">黒
<input type="checkbox" name="colors[]" value="赤色">赤
<input type="checkbox" name="colors[]" value="青色">青
<input type="checkbox" name="colors[]" value="黄色">黄
<input type="checkbox" name="colors[]" value="緑色">緑
<input type="checkbox" name="colors[]" value="桃色">桃
<br>
<input type="submit" name="send" value="送信" style="margin-top:5px">
</div>
</form>
<br>
<hr>
<?php
if (isset($_REQUEST['send'])) { //送信ボタンがクリックされた場合
$c1 = 0;
$c2 = 0;
// セレクトボックス 果物
echo "▼ 好きな果物<br>";
$fruits = $_POST["fruits"];
foreach($fruits as $value) {
echo "$value";
echo "<br>";
$c1 = $c1 + 1;
}
// チェックボックス 色
echo "▼ 好きな色<br>";
foreach( $_POST[colors] as $value ){
echo "{$value}<br>";
$c2 = $c2 + 1;
}
} else {
//送信ボタンがクリックされていない場合
echo "<br><span style='color:navy'>好きな果物と色を選んで送信ボタンはクリックしてください!</span>";
}
?>
</body>
</html>
サイト内関連リンク: