PHP | 都道府県のセレクトフォーム作成する方法

2020-10-01PHP フォーム,PHP

PHP | 都道府県のセレクトフォーム作成する方法

PHPを使って都道府県のセレクトフォーム作成するサンプルコードです。

また、HTML版も紹介しておきます。

都道府県選択のセレクトフォーム作成サンプル

配列に変換可能な都道府県のJSONデータや配列データを用意します。

サンプルはJSONデータからjson_decode()でPHPの配列に変換して処理をしています。

$json = '{
	"01": {
		"code": "01",
		"name": "北海道",
		"roma": "Hokkaidô"
	},
	"02": {
		"code": "02",
		"name": "青森県",
		"roma": "Aomori"
	},
	"03": {
		"code": "03",
		"name": "岩手県",
		"roma": "Iwate"
	},
	"04": {
		"code": "04",
		"name": "宮城県",
		"roma": "Miyagi"
	},
	"05": {
		"code": "05",
		"name": "秋田県",
		"roma": "Akita"
	},
	"06": {
		"code": "06",
		"name": "山形県",
		"roma": "Yamagata"
	},
	"07": {
		"code": "07",
		"name": "福島県",
		"roma": "Hukusima"
	},
	"08": {
		"code": "08",
		"name": "茨城県",
		"roma": "Ibaraki"
	},
	"09": {
		"code": "09",
		"name": "栃木県",
		"roma": "Totigi"
	},
	"10": {
		"code": "10",
		"name": "群馬県",
		"roma": "Gunma"
	},
	"11": {
		"code": "11",
		"name": "埼玉県",
		"roma": "Saitama"
	},
	"12": {
		"code": "12",
		"name": "千葉県",
		"roma": "Tiba"
	},
	"13": {
		"code": "13",
		"name": "東京都",
		"roma": "Tôkyô"
	},
	"14": {
		"code": "14",
		"name": "神奈川県",
		"roma": "Kanagawa"
	},
	"15": {
		"code": "15",
		"name": "新潟県",
		"roma": "Niigata"
	},
	"16": {
		"code": "16",
		"name": "富山県",
		"roma": "Toyama"
	},
	"17": {
		"code": "17",
		"name": "石川県",
		"roma": "Isikawa"
	},
	"18": {
		"code": "18",
		"name": "福井県",
		"roma": "Hukui"
	},
	"19": {
		"code": "19",
		"name": "山梨県",
		"roma": "Yamanasi"
	},
	"20": {
		"code": "20",
		"name": "長野県",
		"roma": "Nagano"
	},
	"21": {
		"code": "21",
		"name": "岐阜県",
		"roma": "Gihu"
	},
	"22": {
		"code": "22",
		"name": "静岡県",
		"roma": "Sizuoka"
	},
	"23": {
		"code": "23",
		"name": "愛知県",
		"roma": "Aiti"
	},
	"24": {
		"code": "24",
		"name": "三重県",
		"roma": "Mie"
	},
	"25": {
		"code": "25",
		"name": "滋賀県",
		"roma": "Siga"
	},
	"26": {
		"code": "26",
		"name": "京都府",
		"roma": "Kyôto"
	},
	"27": {
		"code": "27",
		"name": "大阪府",
		"roma": "Ôsaka"
	},
	"28": {
		"code": "28",
		"name": "兵庫県",
		"roma": "Hyôgo"
	},
	"29": {
		"code": "29",
		"name": "奈良県",
		"roma": "Nara"
	},
	"30": {
		"code": "30",
		"name": "和歌山県",
		"roma": "Wakayama"
	},
	"31": {
		"code": "31",
		"name": "鳥取県",
		"roma": "Tottori"
	},
	"32": {
		"code": "32",
		"name": "島根県",
		"roma": "Simane"
	},
	"33": {
		"code": "33",
		"name": "岡山県",
		"roma": "Okayama"
	},
	"34": {
		"code": "34",
		"name": "広島県",
		"roma": "Hirosima"
	},
	"35": {
		"code": "35",
		"name": "山口県",
		"roma": "Yamaguti"
	},
	"36": {
		"code": "36",
		"name": "徳島県",
		"roma": "Tokusima"
	},
	"37": {
		"code": "37",
		"name": "香川県",
		"roma": "Kagawa"
	},
	"38": {
		"code": "38",
		"name": "愛媛県",
		"roma": "Ehime"
	},
	"39": {
		"code": "39",
		"name": "高知県",
		"roma": "Kôti"
	},
	"40": {
		"code": "40",
		"name": "福岡県",
		"roma": "Hukuoka"
	},
	"41": {
		"code": "41",
		"name": "佐賀県",
		"roma": "Saga"
	},
	"42": {
		"code": "42",
		"name": "長崎県",
		"roma": "Nagasaki"
	},
	"43": {
		"code": "43",
		"name": "熊本県",
		"roma": "Kumamoto"
	},
	"44": {
		"code": "44",
		"name": "大分県",
		"roma": "Ôita"
	},
	"45": {
		"code": "45",
		"name": "宮崎県",
		"roma": "Miyazaki"
	},
	"46": {
		"code": "46",
		"name": "鹿児島県",
		"roma": "Kagosima"
	},
	"47": {
		"code": "47",
		"name": "沖縄県",
		"roma": "Okinawa"
	}
}';

$array = json_decode($json, true);

foreach ($array as $key => $value) {
	$todoufuken .= '<option value="'.$value['code'].'">'.$value['name'].'</option>';
}

$form = '<form action="" method="POST">
<p><select name="todoufuken">'.$todoufuken.'</select></p>
<p><input type="submit" value="送信" /></p>
</form>';

echo $form;

サンプルではフォームで送信する値は都道府県コード(code)にしてありますが、送信先の処理にあわせて都道府県名(name)やローマ字表記(roma)に変更して利用できます。

表示結果

都道府県選択フォームのHTMLコード

PHPによる処理をせず、そのままHTMLとして書き出す用のHTMLコードです。

内容はPHPで生成したものと同じです。

送信する値(都道府県コード)

フォームで送信するデータの都道府県コードです。


<form action="" method="POST">
<p><select name="blood">
	<option value="01">北海道</option>
	<option value="02">青森県</option>
	<option value="03">岩手県</option>
	<option value="04">宮城県</option>
	<option value="05">秋田県</option>
	<option value="06">山形県</option>
	<option value="07">福島県</option>
	<option value="08">茨城県</option>
	<option value="09">栃木県</option>
	<option value="10">群馬県</option>
	<option value="11">埼玉県</option>
	<option value="12">千葉県</option>
	<option value="13">東京都</option>
	<option value="14">神奈川県</option>
	<option value="15">新潟県</option>
	<option value="16">富山県</option>
	<option value="17">石川県</option>
	<option value="18">福井県</option>
	<option value="19">山梨県</option>
	<option value="20">長野県</option>
	<option value="21">岐阜県</option>
	<option value="22">静岡県</option>
	<option value="23">愛知県</option>
	<option value="24">三重県</option>
	<option value="25">滋賀県</option>
	<option value="26">京都府</option>
	<option value="27">大阪府</option>
	<option value="28">兵庫県</option>
	<option value="29">奈良県</option>
	<option value="30">和歌山県</option>
	<option value="31">鳥取県</option>
	<option value="32">島根県</option>
	<option value="33">岡山県</option>
	<option value="34">広島県</option>
	<option value="35">山口県</option>
	<option value="36">徳島県</option>
	<option value="37">香川県</option>
	<option value="38">愛媛県</option>
	<option value="39">高知県</option>
	<option value="40">福岡県</option>
	<option value="41">佐賀県</option>
	<option value="42">長崎県</option>
	<option value="43">熊本県</option>
	<option value="44">大分県</option>
	<option value="45">宮崎県</option>
	<option value="46">鹿児島県</option>
	<option value="47">沖縄県</option>
	</select></p>
<p><input type="submit" value="送信" /></p>
</form>

送信する値(ローマ字版)

フォームで送信するデータのローマ字版です。


<form action="" method="POST">
  <p><select name="blood">
	<option value="Hokkaidô">北海道</option>
	<option value="Aomori">青森県</option>
	<option value="Iwate">岩手県</option>
	<option value="Miyagi">宮城県</option>
	<option value="Akita">秋田県</option>
	<option value="Yamagata">山形県</option>
	<option value="Hukusima">福島県</option>
	<option value="Ibaraki">茨城県</option>
	<option value="Totigi">栃木県</option>
	<option value="Gunma">群馬県</option>
	<option value="Saitama">埼玉県</option>
	<option value="Tiba">千葉県</option>
	<option value="Tôkyô">東京都</option>
	<option value="Kanagawa">神奈川県</option>
	<option value="Niigata">新潟県</option>
	<option value="Toyama">富山県</option>
	<option value="Isikawa">石川県</option>
	<option value="Hukui">福井県</option>
	<option value="Yamanasi">山梨県</option>
	<option value="Nagano">長野県</option>
	<option value="Gihu">岐阜県</option>
	<option value="Sizuoka">静岡県</option>
	<option value="Aiti">愛知県</option>
	<option value="Mie">三重県</option>
	<option value="Siga">滋賀県</option>
	<option value="Kyôto">京都府</option>
	<option value="Ôsaka">大阪府</option>
	<option value="Hyôgo">兵庫県</option>
	<option value="Nara">奈良県</option>
	<option value="Wakayama">和歌山県</option>
	<option value="Tottori">鳥取県</option>
	<option value="Simane">島根県</option>
	<option value="Okayama">岡山県</option>
	<option value="Hirosima">広島県</option>
	<option value="Yamaguti">山口県</option>
	<option value="Tokusima">徳島県</option>
	<option value="Kagawa">香川県</option>
	<option value="Ehime">愛媛県</option>
	<option value="Kôti">高知県</option>
	<option value="Hukuoka">福岡県</option>
	<option value="Saga">佐賀県</option>
	<option value="Nagasaki">長崎県</option>
	<option value="Kumamoto">熊本県</option>
	<option value="Ôita">大分県</option>
	<option value="Miyazaki">宮崎県</option>
	<option value="Kagosima">鹿児島県</option>
	<option value="Okinawa">沖縄県</option>
	</select></p>
  <p><input type="submit" value="送信" /></p>
</form>

送信する値(都道府県名)

フォームで送信するデータの都道府県名版です。


<form action="" method="POST">
  <p><select name="blood">
	<option value="北海道">北海道</option>
	<option value="青森県">青森県</option>
	<option value="岩手県">岩手県</option>
	<option value="宮城県">宮城県</option>
	<option value="秋田県">秋田県</option>
	<option value="山形県">山形県</option>
	<option value="福島県">福島県</option>
	<option value="茨城県">茨城県</option>
	<option value="栃木県">栃木県</option>
	<option value="群馬県">群馬県</option>
	<option value="埼玉県">埼玉県</option>
	<option value="千葉県">千葉県</option>
	<option value="東京都">東京都</option>
	<option value="神奈川県">神奈川県</option>
	<option value="新潟県">新潟県</option>
	<option value="富山県">富山県</option>
	<option value="石川県">石川県</option>
	<option value="福井県">福井県</option>
	<option value="山梨県">山梨県</option>
	<option value="長野県">長野県</option>
	<option value="岐阜県">岐阜県</option>
	<option value="静岡県">静岡県</option>
	<option value="愛知県">愛知県</option>
	<option value="三重県">三重県</option>
	<option value="滋賀県">滋賀県</option>
	<option value="京都府">京都府</option>
	<option value="大阪府">大阪府</option>
	<option value="兵庫県">兵庫県</option>
	<option value="奈良県">奈良県</option>
	<option value="和歌山県">和歌山県</option>
	<option value="鳥取県">鳥取県</option>
	<option value="島根県">島根県</option>
	<option value="岡山県">岡山県</option>
	<option value="広島県">広島県</option>
	<option value="山口県">山口県</option>
	<option value="徳島県">徳島県</option>
	<option value="香川県">香川県</option>
	<option value="愛媛県">愛媛県</option>
	<option value="高知県">高知県</option>
	<option value="福岡県">福岡県</option>
	<option value="佐賀県">佐賀県</option>
	<option value="長崎県">長崎県</option>
	<option value="熊本県">熊本県</option>
	<option value="大分県">大分県</option>
	<option value="宮崎県">宮崎県</option>
	<option value="鹿児島県">鹿児島県</option>
	<option value="沖縄県">沖縄県</option>
	</select></p>
  <p><input type="submit" value="送信" /></p>
</form>

PHP フォーム,PHP

Posted by Yousuke.U