都道府県をドロップダウンに表示 php
<select name="pref" id="pref"> <?php $prefs = array ('北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県','山梨県','新潟県','富山県','石川県','福井県','長野県','岐阜県','静岡県','愛知県','三重県','滋賀県','京都府','大阪府','兵庫県','奈良県','和歌山県','鳥取県','島根県','岡山県','広島県','山口県','徳島県','香川県','愛媛県','高知県','福岡県','佐賀県','長崎県','熊本県','大分県','宮崎県','鹿児島県','沖縄県'); foreach($prefs as $pref){ print('<option value="'.$pref.'">'.$pref.'</option>'); } ?> </select>
解説
数字ではない情報を繰り返し処理する場合「配列」の仕組みを使う。
1つの変数に複数の値を入れる仕組みの事。今回は「$prefs」に代入。
<?php $pref = array('北海道','青森県','岩手県',......,'沖縄県'); ?>
この保存内容は北海道には0青森に1岩手に2「インデックス」または(添字)と呼ばれる数字がつけられて各種をそれぞれ取り出すことが出来る。
下記参照↓↓↓
<?php $pref[0] $pref[1] $pref[2] ?>
こうすることで関連した情報を一まとめにできる。
さらにこのインデックスに変数を利用すれば内容を繰り返し処理で扱うこともできる。
下記の場合のプログラムでは2の岩手県が表示される。
<?php $pref = 2; print($prefs[$1]); ?>
この性質を利用して都道府県のドロップダウンリストを次のプログラムで表示する事が出来る。
<select name="pref" id="pref"> <?php $prefs = array ('北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県','山梨県','新潟県','富山県','石川県','福井県','長野県','岐阜県','静岡県','愛知県','三重県','滋賀県','京都府','大阪府','兵庫県','奈良県','和歌山県','鳥取県','島根県','岡山県','広島県','山口県','徳島県','香川県','愛媛県','高知県','福岡県','佐賀県','長崎県','熊本県','大分県','宮崎県','鹿児島県','沖縄県'); foreach($prefs as $pref){ for($i=0; $i<47; $i++){ print('<option value="'.$prefs.'">'.$prefs[$i].'</option>'); } } ?> </select>
終了の条件は、はじめのインデックスが「0」から始まっているため「46」までで「$i=<46」とすることもできる。または今回のように「47未満」=「$i<47」とすることもできる。
今回のように数字の数が決まっていればいいのが実際に使うのは商品リストや店舗リストなどの増減のある可能性がある場合には「count」ファンクションを使っていく。
<?php for($i=0; $i<count($prefs);$i++){ print('<option value="'.$prefs.'">'.$pref.'</option>'); } ?>
上記の記述でプログラムを変える必要はなくなる。
ここからが応用編です。
「foreach(配列 as 取り出す要素の変数)」{
繰り返す内容
}
今回の例でいくと
<?php foreach($prefs as $pref){ print('<option value="'.$pref.'">'.$pref.'</option>'); } ?>
となる。繰り返し処理の内容は「$prefs[$i]」という変数の代わりに「$pref」と使っているがこれは「foreach」構文の中で指定されている「取り出す要素の変数」でここに順番に配列の内容が代入されていく。
名前はなんでもok。