複数選択可能なフォーム部品から送られたデータを、PHPで取得

複数選択可能なフォーム部品から送られたデータを、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>

「白」と「赤」と「緑」を選択し、送信すると、

<?php
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>

「白」と「赤」と「緑」を選択し、送信すると、

<?php
echo '<p>好きな色: ';
foreach( $_POST[colors] as $value ){
    echo "{$value}, ";
}
echo '</p>';
?>

↓↓↓出力結果↓↓↓

好きな色: white, red, green,

スポンサード リンク

カテゴリー: PHP, フォーム, 逆引き パーマリンク