郵便番号から住所自動入力(都道府県、市区町村、町域)

お世話になります。

郵便番号から住所を都道府県、市区町村、町域名に分けて自動入力を考えております。

フィールド名:フィールドコード
郵便暗号:郵便番号
都道府県:住所1
市区町村:住所2
町域名:住所3

JavaScript初心者です。対処法を教えてください。

takkoboyさん

こちらのサービスを利用して郵便番号を埋めた際に自動で他の欄を埋めるJavaScriptのソースコードです。以下のコードは作成時のみ利用できますので、状況に応じてmyEventsにこの処理を実行させたいイベントを追加してください。

http://zipcloud.ibsnet.co.jp/doc/api

 

(function() {
"use strict";

var myEvents = [
"app.record.create.change.郵便番号"
];

kintone.events.on(myEvents, function(e) {
var zipcode = e["record"]["郵便番号"]["value"];

if (String(zipcode).length === 7) {
var url = 'https://zip-cloud.appspot.com/api/search?zipcode=' + zipcode;

kintone.proxy(url, 'GET', {}, {})
.then(function(args) {
var record = kintone.app.record.get();
//success
var results = JSON.parse(args[0])['results'][0];

record.record['住所1'].value = results['address1'];
record.record['住所2'].value = results['address2'];
record.record['住所3'].value = results['address3'];

kintone.app.record.set(record);
},function(error) {
console.log(error);
});
}
return e;
});
})();

A_Suzuki様

サンプルのご提供ありがとうございます。

正常に動作することを確認しました。

ご協力ありがとうございます。

初心者です。こちらのコードで、郵便番号を入れただけで、町域名まで出るようになりました。
URL:https://developer.cybozu.io/hc/ja/community/posts/360030568412-郵便番号から住所文字列を得る-2018年11月-
只今、「担当エリア」を作りたいと考えているのですが、上記の「市区町村:住所2」だけ表示させたいです。
そのままコピペしたり、20と22行目を削除してみましたが、うまく行きませんでした。
(「郵便暗号」を「zipcode」には書き換えました)
フィールド名:フィールドコード
郵便暗号:zipcode
担当地域:住所2
教えていただけると助かります。

こんばんは。

うまくいかないとの事ですが、具体的にはどのような状態なのでしょうか?(何も表示されない?エラーが出る?)

kintoneカスタマイズの基本的なデバッグの流れを身につけよう のページを参考に、コード上のどの処理まで進んでいるかを調べるのが良いかと思います。

あと、現状のコードを貼って頂いた方が、皆さんもコメントしやすいかと思いますよ。

 

こんばんは。

「何も表示されない」が現状です。ご紹介いただいたエラーコードチェックでは、上記のソースコードではエラーコードがありませんでした。

またブレイクポイントの「以下GIFのように14行目にブレイクポイントを入れて再度読み込みし、変数 record をマウスオーバーすることで、record の中身を確認します」という部分で「中身の確認」画面の出し方が分からず、それ以上は進めていません。

P.S.

以下、2点のソースコードも入れているのですが、そちらではGoogle Maps JavaScript APIに関するエラーコードが出ている気がします。こちらは何が間違っているのかは、わかりません。しかし、今回のソースコードとは関係ない気がします。

エラーコード内容:You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.

エラーコード内容:Uncaught TypeError: Cannot read property ‘value’ of undefined

※フィールドコード「address」としているのにも関わらず、サンプルのソースコードには「住所」と書かれているためだと思われる。しかし、書き換えると何故か地図が2つ表示されるので、書き換えていません。

(1)https://developer.cybozu.io/hc/ja/articles/202179174 

(2)https://developer.cybozu.io/hc/ja/articles/202341964 

関係ないかもしれませんが、フィールド名「レコード番号」フィールドコード「record」という「文字列(1行)」があるのですが、こちらも何も表示されていません。フィールドコード「record」とソースコード「record」とは名称が同じですが、これは問題になるのでしょうか。

こんにちは。

Google Maps関連のJSを読み込まれてるとの事ですが、切り分けのために一旦外して頂くのが良いかと思います。
(こちらが原因で郵便番号の処理が止まっている可能性もあるため)

レコード番号のフィールドコードを「record」にする事は問題無いかと思います。

 

参考にされていたページを見ていたのですが、本文には

フォームに、住所文字列出力用フィールド 「adress」(文字列)

と記載があるのですが、ソースコード上は「address」となっており、コードが一致していない状態でしたので、どちらかに揃える必要がありそうです。
(本文の方が間違ってそうですね)

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。