スキルアップを始める!

【JavaScript】郵便番号検索APIを使って住所を自動取得する(zipcloud)

JavaScript(ジャバスクリプト)
JavaScript(ジャバスクリプト)
この記事は約5分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

無料で使える郵便番号検索APIを使って、住所を自動入力してみます。

zipcloud
https://zipcloud.ibsnet.co.jp/api/search

フォームのHTMLを作る

まずは、フォームのHTMLを作ります。

<form>
    <label for="zip">郵便番号:</label>
    <input type="text" id="zip" name="zip" maxlength="7">
    <br>
    <label for="address">住所:</label>
    <input type="text" id="address" name="address" readonly>
  </form>

<style>
#address{
width:80%
}
</style>

CSSは、適時調整ください。

郵便番号検索APIを使って住所を自動取得する(zipcloud)

以下は、jQueryを使用して郵便番号検索APIを使って住所を自動取得するサンプルコードです。

このコードでは、zipcloudのAPIを使用して、入力された郵便番号に対応する住所を自動的に取得し、住所欄に表示します。

<script>
    const zipInput = document.getElementById('zip');
    zipInput.addEventListener('blur', function() {
      const zip = this.value;
      if (zip.length === 7) {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=' + zip);
        xhr.onload = function() {
          if (xhr.status === 200) {
            const data = JSON.parse(xhr.responseText);
            if (data.status === 200) {
              const address = data.results[0].address1 + data.results[0].address2 + data.results[0].address3;
              document.getElementById('address').value = address;
            } else {
              alert('住所が取得できませんでした。');
            }
          }
        };
        xhr.send();
      }
    });
</script>

郵便番号を入力すると、住所が自動入力されます。

以下、コードの解説です。

[rml_read_more]

コード解説

以下は、今回のコードの解説です。

zip というIDを持つ要素を取得して、zipInput という定数に代入します。これは、郵便番号フィールドに対応します。

    const zipInput = document.getElementById('zip');

zipInput 要素の blur イベント(フォーカスが外れたときのイベント)に対して、関数を登録します。

    zipInput.addEventListener('blur', function() {

    });

登録した関数では、郵便番号フィールドの値を取得して zip という定数に代入します。

     const zip = this.value;

zip の長さが7桁であるかを確認します。7桁であれば、APIエンドポイント (https://zipcloud.ibsnet.co.jp/api/search?zipcode=) に対して GET リクエストを送信します。

      if (zip.length === 7) {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=' + zip);
        xhr.onload = function() {
  
        };
        xhr.send();
      }

リクエストが成功した場合、レスポンスデータを解析して住所を取得します。もしレスポンスのステータスが200であれば、取得した住所を address という定数に代入します。

        if (xhr.status === 200) {
            const data = JSON.parse(xhr.responseText);
            if (data.status === 200) {
  
          }

address を持つ要素に取得した住所を表示します。

            const address = data.results[0].address1 + data.results[0].address2 + data.results[0].address3;
              document.getElementById('address').value = address;
            }

もしステータスが200でない場合、”住所が取得できませんでした。” というアラートメッセージが表示されます。

 else {
              alert('住所が取得できませんでした。');
            }

まとめ

以上が、このスクリプトの概要になります。このコードでは、ユーザーが入力した郵便番号に対応する住所を自動的に取得し、住所欄に表示することができます。

URLをコピーしました!