セレクトボックスとforeach

文字列で構成されたセレクトボックスの選択肢を作る(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に格納されてます。
PHPについて

この本から引用、参考にして学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが3,000円弱ならコスパよく、買っておいてよかったと満足してます。


短期間でのレベルアップにはプロから学ぶのもありです。

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。

就職・転職支援