複数選択可能なフォーム部品から送られたデータを、PHPで取得するには、フォーム部品のname属性値に[]
を付加しておく。これだけで、複数選択した値は、配列に格納される。
POSTメソッドで送られたデータを、PHPで取得するには、定義済み変数のひとつである$_POSTを使う。
GETメソッドで送られたデータを、PHPで取得するには、定義済み変数のひとつである$_GETを使う。
$_POST
や$_GET
は、フォーム部品のname属性値がキーの連想配列になっている。$_POST[name属性値]
のように、name属性値をキーにして、送信フォームからPOSTメソッドで送られたデータを取得できる。
サンプル
チェックボックス
<form action="sample.php" method="POST">
<p>好きな色(複数回答可):
<input type="checkbox" name="colors[]" value="white">白
<input type="checkbox" name="colors[]" value="black">黒
<input type="checkbox" name="colors[]" value="red">赤
<input type="checkbox" name="colors[]" value="blue">青
<input type="checkbox" name="colors[]" value="green">緑
</p>
<p><input type="submit" value="送信"></p>
</form>
<p>好きな色(複数回答可):
<input type="checkbox" name="colors[]" value="white">白
<input type="checkbox" name="colors[]" value="black">黒
<input type="checkbox" name="colors[]" value="red">赤
<input type="checkbox" name="colors[]" value="blue">青
<input type="checkbox" name="colors[]" value="green">緑
</p>
<p><input type="submit" value="送信"></p>
</form>
「白」と「赤」と「緑」を選択し、送信すると、
<?php
echo '<p>好きな色: ';
foreach( $_POST[colors] as $value ){
echo "{$value}, ";
}
echo '</p>';
?>
echo '<p>好きな色: ';
foreach( $_POST[colors] as $value ){
echo "{$value}, ";
}
echo '</p>';
?>
↓↓↓出力結果↓↓↓
好きな色: white, red, green,
複数選択可能なリスト形式のセレクトボックス
<form action="sample.php" method="POST">
<p>好きな色(複数回答可): </p>
<select name="colors[]" multiple>
<option value="white">白</option>
<option value="black">黒</option>
<option value="red">赤</option>
<option value="blue">青</option>
<option value="green">緑</option>
</select>
<p><input type="submit" value="送信"></p>
</form>
<p>好きな色(複数回答可): </p>
<select name="colors[]" multiple>
<option value="white">白</option>
<option value="black">黒</option>
<option value="red">赤</option>
<option value="blue">青</option>
<option value="green">緑</option>
</select>
<p><input type="submit" value="送信"></p>
</form>
「白」と「赤」と「緑」を選択し、送信すると、
<?php
echo '<p>好きな色: ';
foreach( $_POST[colors] as $value ){
echo "{$value}, ";
}
echo '</p>';
?>
echo '<p>好きな色: ';
foreach( $_POST[colors] as $value ){
echo "{$value}, ";
}
echo '</p>';
?>
↓↓↓出力結果↓↓↓
好きな色: white, red, green,