ゼロと無限の間に

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

ユーザ用ツール

サイト用ツール


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki