読者です 読者をやめる 読者になる 読者になる

ハロトレWebデザインの勉強 | 求職者支援訓練Webサイト制作科 フェリカテクニカルアカデミー

未経験者からプロになるハロートレーニングWebデザインの勉強

演習(3)セレクトボックスで商品を選ぶ

配列を使う

  • テキストP.132〜
  • 配列を使うと1つの変数の中に複数の値を代入することができます
配列を定義する
  • array関数で配列変数を一気に定義できます
  • $_GETや$_POSTは、変数に連想配列として格納されます


《例》

<?php
$a = array ();  //配列の初期化
$a[0] = 'カボチャ';  //配列に値を設定
$a[1] = 'ミカン';
$a[2] = 'レンコン'; 
$a[3] = 'スイカ';
echo $a[2];  //表示結果:レンコン(配列の参照)


《例》

<?php
$a = array ( 'カボチャ', 'ミカン', 'レンコン', 'スイカ' );
echo $a[2];  //表示結果:レンコン

連想配列を使う

  • 配列を初期化したとき、自動で「0」番が振られると困る場合があります
  • 先頭を「1」番とするなど、番号や名前を自分で指定したい場合には「番号(キー) => 値」のように記述します


《例》

<?php
$moon = array ( 1=>'睦月', 2=>'如月', 3=>'弥生', 4=>'卯月', 5=>'皐月', 6=>'水無月', 7=>'文月', 8=>'葉月', 9=>'長月', 10=>'神無月', 11=>'霜月', 12=>'師走');
echo $moon[3];  // 表示結果 : 弥生


《例》

<?php
$moon = array( '睦月'=>'1月', '如月'=>'2月', '弥生'=>'3月', '卯月'=>'4月', '皐月'=>'5月', '水無月'=>'6月',  '文月'=>'7月',  '葉月'=>'8月', '長月'=>'9月', '神無月'=>'10月', '霜月'=>'11月', '師走'=>'12月');
echo $moon[ '長月' ] . '<br>'; // 表示結果 : 9月
echo $moon[ '霜月' ]; // 表示結果 : 11月
  • このような文字列が要素名となる配列を「連想配列」と呼びます

foreach文を使う

  • 配列の各要素の値を順に取り出すことができます



foreach ( $配列変数 as $値 ) {
 //ここに繰り返し行う処理を記述
}


foreach ( $配列変数 as $要素名 => $値 ) {
 //ここに繰り返し行う処理を記述
}


《例》

<?php
$fruits = array( 'イチゴ', 'バナナ', 'オレンジ', 'マンゴー' );
foreach ( $fruits as $item ) {
  echo '<p>' . $item . '</p>';
}
<?php
$list = array (
  'Banana',
  'Orange',
  'Apple'
);
foreach ( $list as $f ) {
  echo '<h1>' . $f . '</h1>';
}
<?php
// 配列変数を初期化
$fruits = array( 'イチゴ'=>300, 'バナナ'=>120, 'オレンジ'=>200, 'マンゴー'=>540 );
// 変数の要素を一つずつ列挙
echo '<table>';
foreach ($fruits as $item => $price) {
  echo '<tr><th>' . $item . '</th><td>' . $price . '円</td></tr>';
}
echo '</table>';
商品をセレクトボックス
  • show_form関数
<?php
// 商品一覧の定義
$goods = array( '目薬', '日焼け止め', 'シャンプー', '虫除けスプレー', '石けん', 'ガム', 'チョコレート', 'バナナ' );

// パラメータに応じて処理を変える
if (isset($_GET[ 'goods' ])) {
  show_item();
} else {
  show_form();
}

// 選択したアイテムを表示する
function show_item() {
  $goods = $_GET[ 'goods' ];
  $goods_html = htmlspecialchars( $goods );  // HTML変換
  echo '商品「' . $goods_html . '」を購入しました!!';
}

// フォームを表示する
function show_form() {
  global $goods; // グローバル宣言

// 選択肢の文字列を生成する
  $options = '';
  foreach ($goods as $item) {
    $options .= '<option value=' . $item . '>' . $item . '</option>';
  }

// フォームをヒアドキュメントで表示
echo <<< __FORM__
<form>
<select name="goods">
    <option>商品を選択</option>
    $options
</select>
<input type="submit" value="購入">
</form>
__FORM__;

}