php-tool-box:todofuken-select
ちょっと見やすい都道府県の選択リストを生成 - TodofukenSelect.php
コメントと更新履歴はゼロと無限の間のログ » TodofukenSelect.phpでどうぞ。
※この日本地図はただのイメージ画像なので、ソースコードとは無関係です。
都道府県を選択するselect要素の中身のoption要素を生成するPHPのクラス。
この前、Webのフォームで住所を入力した際に都道府県選択リストが普通に使い辛くて、憤慨して作った。
ようするに、都道府県はブロック(地方)ごとにoptgroup要素でまとめようよという主張です。
都道府県データはマスタから取得することが多いけど、ほとんど変化しないんでソースコードに埋め込んでいてもいい気がする。
サンプル
ソースコード
<?php /** * TodofukenSelect.php * @version 0.2.0 * @see http://0-oo.net/sbox/php-tool-box/smart-date * @copyright 2008-2011 dgbadmin@gmail.com * @license http://0-oo.net/pryn/MIT_license.txt (The MIT license) */ class TodofukenSelect { /** * 全都道府県のoption要素を取得する * @param string $selected 選択状態にする都道府県 * @return string (省略可)都道府県を選択するselect要素のhtml */ public static function getOptions($selected = '') { $s = ''; foreach (TodofukenSelect::_getList() as $block => $kens) { $s .= "<optgroup label=\"$block\">\n"; foreach ($kens as $ken) { $select = ''; if ($ken === $selected) { $select = ' selected="selected"'; } $s .= "<option$select>$ken</option>\n"; } $s .= "</optgroup>\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( '福岡県', '佐賀県', '長崎県', '熊本県', '大分県', '宮崎県', '鹿児島県', '沖縄県', ), ); } }
php-tool-box/todofuken-select.txt · 最終更新: 2011/04/20 22:26 by dgbadmin