➀文字列で構成されたセレクトボックスの選択肢を作る(foreachを使って)
早速、作ってみましょう。
select-foreach-input.php
<?php require ‘header.php’; ?> <p>好きな色を選んでください。</p> <form action=”select-foreach-output.php” method=”post”> <select name=”color”> <?php $color = [‘ホワイト’,’ブルー’,’レッド’,’イエロー’,’ブラック’]; foreach ($color as $c){ echo ‘<option value=”‘, $c, ‘”>’, $c, ‘</option>’; } ?> </select> <input type=”submit” value=”確定”> </form> <?php require ‘footer.php’; ?> | foreachの書式は以下です。 foreach (配列 as 変数){ 変数を使った処理; } foreachループは、配列に格納された値を1個ずつ取り出して処理を行えます。 今回は配列$colorから変数$cに値を取り出し、選択肢を作成しています。 |
select-foreach-output.php
<?php require ‘header.php’; ?> <?php echo ‘<p>あなたの好きな色は[‘, $_REQUEST[‘color’], ‘]</p>’; ?> <?php require ‘footer.php’; ?> | セレクトボックスのname属性をcolorとしました。このセレクトボックスで選んだ選択肢は$_REQUEST[‘color’]で取得できます。 |
配列に格納できる値のいろいろ
[ 123, 789, 456] | 連番 |
[‘A’, 2,3,4,5,6,7,’J’,’K’,’Q’] | 文字列と数値を混ぜる |
[ 1/2, 1/4, 1/5] | 値の代わりに式を。配列には式の値が格納される(0,5, 0.25, 0.2) |
➁配列にキーと値を格納し、値をforeachで取り出す
それでは早速、作ってみましょう
store-foreach-input.php
<?php require ‘header.php’; ?> <p>店舗を選択してください</p> <form action=”store-foreach-output.php” method=”post”> <select name=”code”> <?php $store = [ ‘東京’=>100,’埼玉’=>101,’千葉’=>102,’神奈川’=>103,’福岡’=>104,’大分’=>105 ]; foreach ($store as $key=>$value){ echo ‘<option value=”‘, $value, ‘”>’, $key, ‘</option>’; } ?> </select> <input type=”submit” value=”確定”> </form> <?php require ‘footer.php’; ?> | 配列にキーと値を格納するには、 変数 = [ キーA => 値A , キーB => 値B , ]; と記述します。 foreachで取り出すには、 foreach (配列 as キーの変数 => 値の変数) { キー変数と値変数を使った処理 ; } |
store-foreach-output.php
<?php require ‘header.php’; ?> <?php echo ‘店舗コードは’, $_REQUEST[‘code’], ‘です’; ?> <?php require ‘footer.php’; ?> | セレクトボックスのname属性をcodeとしてます。このセレクトボックスで選んだ選択肢は$_REQUEST[‘code’]で取得できます。 セレクトボックスのリクエストパラメータから取得できるのは<option>タグのvalue属性に設定した値です。 |
➂チェックボックスで選択した項目を取得して、取得したものを一覧で表示
では、作ってみましょう
check-foreach-input.php
<?php require ‘header.php’; ?> <p>好きな音楽のジャンルを選んでください</p> <form action=”check-foreach-output.php” method=”post”> <?php $genre=[‘邦楽’, ‘洋楽’, ‘ジャズ’, ‘クラシック’]; foreach ($genre as $item) { echo ‘<p>’; echo ‘<input type=”checkbox” name=”genre[ ]” value=”‘, $item, ‘”>‘; echo $item; echo ‘</p>’; } ?> <p><input type=”submit” value=”確定”></p> </form> <?php require ‘footer.php’; ?> | 配列$genreから値を1つ取り出して、チェックボックスを作成します。 name属性で指定するチェックボックス名の最後に[ ]を付けます。[ ]を付けることで値を配列で取得することができます。 |
check-foreach-output.php
<?php require ‘header.php’; ?> <?php if (isset($_REQUEST[‘genre’])){ foreach ($_REQUEST[‘genre’] as $item){ echo ‘<p>’, $item, ‘</p>’; } } ?> <?php require ‘footer.php’; ?> | if文とissetを使って、どの項目もチェックしなかった場合にエラーがでないようにします。 チェックボックス名がgenre[ ]の場合、リクエストパラメータ名は[genre]で、$_REQUEST[‘genre’]で取得できます。 取り出した項目は変数$itemに格納されてます。 |