ゼロと無限の間に

フリーでオープンソースなJavaScriptとかPHPとか。

ユーザ用ツール

サイト用ツール


サイドバー

何かありましたら、メールで連絡いただくか、ブログのどこかにコメント入れてくださいね ^_^

Menu

ゼロと無限の間に

はじめに

作った主なサイト

作った主な便利ツール(無料)

ログ (Blog)

php-tool-box:todofuken-select

文書の過去の版を表示しています。


ちょっと見やすい都道府県の選択リストを生成 - TodofukenSelect.php

コメントと更新履歴はゼロと無限の間のログ » TodofukenSelect.phpでどうぞ。

※この日本地図はただのイメージ画像なので、ソースコードとは無関係です。

都道府県を選択するselect要素の中身のoption要素を生成するPHPのクラス。

この前、Webのフォームで住所を入力した際に都道府県選択リストが普通に使い辛くて、憤慨して作った。

ようするに、都道府県はブロック(地方)ごとにoptgroup要素でまとめようよという主張です。

都道府県データはマスタから取得することが多いけど、ほとんど変化しないんでソースコードに埋め込んでいてもいい気がする。

サンプル

ソースコード

<?php
/**
 *    @version    0.1.0
 */
class TodofukenSelect {
    /**
     *    全都道府県のoption要素を取得する
     *    @param    string    $selected    選択状態にする都道府県の区分 or 都道府県名
     *    @return    string    (省略可)都道府県を選択するselect要素のhtml
     */
    public static function getOptions($selected = '') {
        $list = TodofukenSelect::_getList();
        $s = '';
        foreach ($list as $block => $kens) {
            $s .= "<optgroup label=\"$block\">\n";
            foreach ($kens as $kbn => $ken) {
                if ($kbn == $selected || $ken == $selected) {
                    $attr = ' selected="selected"';
                } else {
                    $attr = '';
                }
                $s .= "<option value=\"$kbn\"$attr>$ken</option>\n";
            }
            $s .= "</optgroup>\n";
        }
        return $s;
    }
    /**
     *    都道府県の区分から都道府県名を取得する
     *    @param    string    $kbn    都道府県の区分
     *    @return    string    都道府県名
     */
    public static function getName($kbn) {
        $list = TodofukenSelect::_getList();
        foreach ($list as $block => $kens) {
            if ($kens[$kbn]) {
                return $kens[$kbn];
            }
        }
        return false;
    }
    /**
     *    都道府県一覧を取得する
     *    @return    array    都道府県一覧
     */
    private static function _getList() {
        return array(
            '北海道・東北' => array(
                  '01' => '北海道'
                , '02' => '青森県'
                , '03' => '岩手県'
                , '04' => '宮城県'
                , '05' => '秋田県'
                , '06' => '山形県'
                , '07' => '福島県'
            ), '関東' => array(
                  '08' => '茨城県'
                , '09' => '栃木県'
                , '10' => '群馬県'
                , '11' => '埼玉県'
                , '12' => '千葉県'
                , '13' => '東京都'
                , '14' => '神奈川県'
            ), '北陸・甲信越' => array(
                  '15' => '新潟県'
                , '16' => '富山県'
                , '17' => '石川県'
                , '18' => '福井県'
                , '19' => '山梨県'
                , '20' => '長野県'
            ), '東海' => array(
                  '21' => '岐阜県'
                , '22' => '静岡県'
                , '23' => '愛知県'
                , '24' => '三重県'
            ), '関西' => array(
                  '25' => '滋賀県'
                , '26' => '京都府'
                , '27' => '大阪府'
                , '28' => '兵庫県'
                , '29' => '奈良県'
                , '30' => '和歌山県'
            ), '中国' => array(
                  '31' => '鳥取県'
                , '32' => '島根県'
                , '33' => '岡山県'
                , '34' => '広島県'
                , '35' => '山口県'
            ), '四国' => array(
                  '36' => '徳島県'
                , '37' => '香川県'
                , '38' => '愛媛県'
                , '39' => '高知県'
            ), '九州' => array(
                  '40' => '福岡県'
                , '41' => '佐賀県'
                , '42' => '長崎県'
                , '43' => '熊本県'
                , '44' => '大分県'
                , '45' => '宮崎県'
                , '46' => '鹿児島県'
                , '47' => '沖縄県'
            )
        );
    }
}
php-tool-box/todofuken-select.1204988236.txt.gz · 最終更新: 2008/03/08 23:57 by dgbadmin