質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1757閲覧

jsonファイルから要素を取得し、番号順に要素を取得する住所システムを作る

YamamotoAtsushi

総合スコア17

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/05/17 10:17

編集2017/05/17 11:31

jsonファイルから1~47番目まで書いたものと各住所が記載されたファイルから番号と住所を取得しjQueryのajax通信で取得した郵便番号から住所フルとない場合のエラー表示を実装しようかと思うのですがなぜか市町村からしか出来ません。
コードと実際に試したことを下に記載致します。どこの部分のコードがエラーになっているか教えて頂ければと思います。

json

1"0220000":[3,"大船渡市",""],"0220211":[3,"大船渡市","三陸町綾里"],"0220005":[3,"大船渡市","日頃市町"],"0228508":[3,"大船渡市","赤崎町","字鳥沢164-2"],"0228512":[3,"大船渡市","大船渡町","字山馬越10-1"],"0220003":[3,"大船渡市","盛町"],"0228501":[3,"大船渡市","盛町","字宇津野沢15"],"0228602":[3,"大船渡市","大船渡町","字欠ノ下向1-125"],"0228502":[3,"大船渡市","猪川町","字前田6-1"],"0228505":[3,"大船渡市","大船渡町","字永沢6-16"],"0228504":[3,"大船渡市","盛町","字二本枠5"],"0220004":[3,"大船渡市","猪川町"],"0220006":[3,"大船渡市","立根町"],"0220001":[3,"大船渡市","末崎町"],"0220007":[3,"大船渡市","赤崎町"],"0228503":[3,"大船渡市","大船渡町","字茶屋前101"],"0220102":[3,"大船渡市","三陸町吉浜"],"0228507":[3,"大船渡市","盛町","字下舘下7番地16"],"0220002":[3,"大船渡市","大船渡町"],"0220101":[3,"大船渡市","三陸町越喜来"]} 2

html

1<!DOCTYPE html> 2<html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>住所自動入力フォーム</title> 6 <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> 7 <script type="text/javascript" src="zip_search1.js"></script> 8 </head> 9 <body> 10 <p>郵便番号を入力すると住所を自動取得します。<br> 11 <span style="font-size:80%;color:#666">(新しい郵便番号の場合は手動で入力してください)</span></p> 12 <form onSubmit="return false;"> 13 <table border="0"> 14 <tr> 15 <th>郵便番号</th> 16 <td><input type="text" name="zip1" id="zip1" size="4" maxlength="3"> 17<input type="text" name="zip2" id="zip2" size="5" maxlength="4" 18 onKeyUp="ZipSearch.searchAddr('#zip1','#zip2','#prefecture','#address');"></td> 19 </tr> 20 <tr> 21 <th>住所 22</th> 23 <td><input type="text" name="address" id="address" size="45"></td> 24 </tr> 25 </table> 26 <p><input type="reset" value="リセット"></p> 27 </form> 28 </body> 29</html> 30 31 32```javascript

$(function () {
ZipSearch = new Object();
ZipSearch.dir ="./data";
ZipSearch.searchAddr = function( bango1,bango2, todofuken, shikuchoson ) {
var e_bango1 = $(bango1);
var e_bango2 = $(bango2);
var e_todohuken =$(todofuken);
var e_shikuchoson =$(shikuchoson);

if(! e_bango1 ) err(1); if(! e_bango2 ) err(1); if(! e_todohuken ) err(1); if(! e_shikuchoson ) err(1); var zip1 =e_bango1.val(); var zip2 =e_bango2.val(); var zip3 = zip1 + zip2; if(zip1.length != 3) return; if(zip2.length != 4) return; if ( ! zip3.match(/^[0-9]{7}$/)) err(2); var ajaxFunc = function (data){ var jsonData = JSON.parse(JSON.stringify(data)); var array = jsonData[zip3]; if(array) { var pref_id = array[0]; var ken = { 1:"北海道", 2:"青森県", 3:"岩手県", 4:"宮城県",

5:"秋田県", 6:"山形県", 7:"福島県", 8:"茨城県", 9:"栃木県",
10:"群馬県", 11:"埼玉県", 12:"千葉県", 13:"東京都", 14:"神奈川県",
15:"新潟県", 16:"富山県", 17:"石川県", 18:"福井県", 19:"山梨県",
20:"長野県", 21:"岐阜県", 22:"静岡県", 23:"愛知県", 24:"三重県",
25:"滋賀県", 26:"京都府", 27:"大阪府", 28:"兵庫県", 29:"奈良県",
30:"和歌山県",31:"鳥取県", 32:"島根県", 33:"岡山県", 34:"広島県",
35:"山口県", 36:"徳島県", 37:"香川県", 38:"愛媛県", 39:"高知県",
40:"福岡県", 41:"佐賀県", 42:"長崎県", 43:"熊本県", 44:"大分県",
45:"宮崎県", 46:"鹿児島県", 47:"沖縄県"
};

var select_japan=""; for(var i = 1;i < pref_id.lenght;i++){ for(var j=1;j < ken.length;j++){ var select_japan =ken[j]; } } var j_pref = select_japan; var j_city = array[1]; var j_area = array[2]; e_shikuchoson.val(j_pref+j_city + j_area); } else { jarea =' '; jcity = ' '; err(3); } }; var dataPath = ZipSearch.dir+'/zip-'+zip1+'.json'; $.get( dataPath, ajaxFunc ); }; function err(num) { var errCase = num; if(errCase == 1) { alert('プログラムエラーです。\n恐れ入りますが手動で入力してください。'); } else if(errCase == 2) { alert('郵便番号は半角数字で入力してください。'); } else if (errCase == 3) { alert('住所が取得できませんでした。\n恐れ入りますが手動で入力してください。'); } retrun; };

});

試したことは、each構文でPHPのforeach構文で要素を取得しようとしました。 ```jQuery var i = pref_id; var select_japan =""; $.each(ken, function(i, val) { select_japan =ken[val]; });

どなたか御教授頂ければと思います。
宜しくお願い致します

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2017/05/17 11:02

質問文のコードはそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
guest

回答1

0

自己解決

すいません。解決できました。

上記のjquery部分を下記の通りにしました。

javascript

1var i = pref_id; 2 3var select_japan =""; 4 $.each(i, function(ken, value) { 5 ken[i]; 6 }); 7 8var j_pref = ken[i];

ご迷惑をおかけいたしました。

投稿2017/05/17 11:34

YamamotoAtsushi

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問