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

2020-10-01PHP,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>

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

Posted by Yousuke.U