====== ちょっと見やすい都道府県の選択リストを生成 - TodofukenSelect.php ====== コメントと更新履歴は[[http://0-oo.net/log/category/php-tool-box/todofuken-select/|ゼロと無限の間のログ » TodofukenSelect.php]]でどうぞ。 {{php-tool-box:map-japan.gif|}} ※この日本地図はただのイメージ画像なので、ソースコードとは無関係です。 都道府県を選択するselect要素の中身のoption要素を生成するPHPのクラス。 この前、Webのフォームで住所を入力した際に都道府県選択リストが普通に使い辛くて、憤慨して作った。 ようするに、都道府県はブロック(地方)ごとにoptgroup要素でまとめようよという主張です。 都道府県データはマスタから取得することが多いけど、ほとんど変化しないんでソースコードに埋め込んでいてもいい気がする。 ===== サンプル ===== [[http://0-oo.net/sam/todofuken/|TodofukenSelect.phpのサンプル]] ===== ソースコード ===== $kens) { $s .= "\n"; foreach ($kens as $ken) { $select = ''; if ($ken === $selected) { $select = ' selected="selected"'; } $s .= "$ken\n"; } $s .= "\n"; } return $s; } /** * 正しい都道府県かチェックする * @param string $name 都道府県名 * @return boolean */ public static function isTodofuken($name) { foreach (TodofukenSelect::_getList() as $block => $kens) { if (in_array($name, $kens)) { return true; } } return false; } /** * 都道府県一覧を取得する * @return array 都道府県一覧 */ private static function _getList() { return array( '北海道・東北' => array( '北海道', '青森県', '岩手県', '宮城県', '秋田県', '山形県', '福島県', ), '関東' => array( '茨城県', '栃木県', '群馬県', '埼玉県', '千葉県', '東京都', '神奈川県', ), '北陸・甲信越' => array( '新潟県', '富山県', '石川県', '福井県', '山梨県', '長野県', ), '東海' => array( '岐阜県', '静岡県', '愛知県', '三重県', ), '関西' => array( '滋賀県', '京都府', '大阪府', '兵庫県', '奈良県', '和歌山県', ), '中国' => array( '鳥取県', '島根県', '岡山県', '広島県', '山口県', ), '四国' => array( '徳島県', '香川県', '愛媛県', '高知県', ), '九州' => array( '福岡県', '佐賀県', '長崎県', '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県', ), ); } }