セレクトボックスで選択された項目に応じたメッセージを表示させる
早速、作ってみましょう。
select-input.php
<?php require ‘header.php’; ?> <p>ラーメンのトッピングを選んでください</p> <form action=”select-output.php” method=”post”> <select name=”food”> <option value=”もやし”>もやし</option> <option value=”メンマ”>メンマ</option> <option value=”チャーシュー”>チャーシュー</option> </select> <input type=”submit” value=”確定”> </form> <?php require ‘footer.php’; ?> | セレクトボックスを作成するには<select>タグを書きます。name属性を使って名前を付けます。この名前がリクエストパラメータ名になります。 選択肢を追加するには<option>タグを書きます。 value属性に設定した値はリクエストパラメータに設定され、スクリプトから取得することができます。 |
select-output.php
<?php require ‘header.php’; ?> <?php switch ($_REQUEST[‘food’]){ case ‘メンマ’: echo ‘追加料金は100円です’; break; case ‘チャーシュー’: echo ‘追加料金は200円です’; break; default: echo ‘追加料金はありません。’; break; } ?> <?php require ‘footer.php’; ?> | defaultは、どのcase文にも該当しなかったときに実行されます。選択肢の「のり」はcase文に該当していないので、defaultが適用されます。 |
セレクトボックスとfor文
セレクトボックスの選択肢をスクリプト(PHPで書かれたもの)で自動的に作成
select-for-input.php
<?php require ‘header.php’; ?> <p>購入数を選択してください</p> <form action=”select-for-output.php” method=”post”> <select name=”count“> <?php for ( $i=0; $i<=5; $i++){ echo ‘<option value=” ‘, $i, ‘ “>’, $i, ‘</option>’; } ?> </select> <input type=”submit” value=”確定”> </form> <?php require ‘footer.php’; ?> | 最初に変数$iの値を「0」にします。 $iが「5以下」の間は次の処理を繰り返す。繰り返すたびに$iの値に「1」を加算する。 変数iの値を選択肢として表示する。 |
select-for-output.php
<?php require ‘header.php’; ?> <?php echo $_REQUEST[‘count’], ‘個の商品をカートに追加しました。’ ?> <?php require ‘footer.php’; ?> | name属性をcountとしました。セレクトボックスも、name属性の値がリクエストパラメータ名になります。セレクトボックスで選んだ選択肢は、 $_REQUEST[‘count’]で取得できます。 ここで取得できるのは<option>タグのvalue属性です。選択した<option>タグの値からがリクエストパラメータに設定されます。ここでは0から5までの数値が得られるので、メッセージとともに表示されます。 |
セレクトボックスとwhile文
select-while-input.php
<?php require ‘header.php’; ?> <p>購入数を選択してください</p> <form action=”select-while-output.php” method=”post”> <select name=”count”> <?php $i = 0; while ($i < 5){ echo ‘<option value=”‘, $i, ‘”>’,$i, ‘</option>’; $i++; } ?> </select> <input type=”submit” value=”確定”> </form> <?php require ‘footer.php’; ?> | whileループはforループと同様に、繰り返し処理をするための構文です。条件式がTRUEの間は処理を繰り返します。 |
select-while-output.php
<?php require ‘header.php’; ?> <?php echo $_REQUEST[‘count’], ‘個の商品をカートに追加しました。’ ?> <?php require ‘footer.php’; ?> |