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

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オブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1439閲覧

3つの連動するセレクトボックスを外部のJSONデータを用いて作りたい(2)

rere

総合スコア13

JSON

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

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/03/15 03:25

まずは、selectbox1で値を選択した時、selectbox2にJSONのstoreNameを表示させたいのですが、selectbox1を変更してもselectbox2にJSONデータが表示されません。

どうかご教授いただきたく思います。

html

1<!DOCTYPE html> 2<head> 3</head> 4<body> 5 <div> 6 <label><span>*</span></label> 7 <div> 8 <select id="selectbox1" class="input" name="ken"> 9 <option value="">都道府県</option> 10 </select> 11 <select id="selectbox2" class="input" name="address"> 12 <option value="">市区町村</option> 13 </select> 14 <select id="selectbox3" class="input" name="store"> 15 <option value="">店名</option> 16 </select> 17 </div> 18 </div> 19 <script src="../javascript/jquery-3.1.1.min.js"></script> 20 <script src="../javascript/shopselect.js"></script> 21</body>

javascript

1$(function(){ 2 3 $.getJSON("../storeselect.json", function(data){ 4 for(var i in data.areaList){ 5 $("#selectbox1").append("<option value=" + data.areaList[i].areaNumber + ">" + data.areaList[i].areaName + "</option>"); 6 } 7 }); 8 9 $("#selectbox1").chabge(function(){ 10 $.getJSON("../storeselect.json", function(data){ 11 for(var i in data.areaList){ 12 for(var j in data.areaList[i].cityList){ 13 $("#selectbox2").append("<option value=" + data.areaList[i].cityList[j].cityNumber + ">" + data.areaList[i].cityList[j].cityName + "</option>"); 14 } 15 } 16 }); 17 }); 18}); 19

JSON

1{ 2 "areaList": [ 3 { 4 "areaName": "岩手県", 5 "areaNumber":"1", 6 "cityList": [ 7 { 8 "cityName": "盛岡市", 9 "cityNumber":"1", 10 "storeList": [ 11 { 12 "id": "11", 13 "storeName": "盛岡駅前店", 14 "storeNumber":"1", 15 "link": "morioka" 16 } 17 ] 18 }, 19 { 20 "cityName": "北上市", 21 "cityNumber":"2", 22 "storeList": [ 23 { 24 "id": "6", 25 "storeName": "北上西口店", 26 "storeNumber":"1", 27 "link": "kitakaminishi" 28 }, 29 { 30 "id": "4", 31 "storeName": "北上駅前店", 32 "storeNumber":"2", 33 "link": "kitakamiekimae" 34 } 35 ] 36 } 37 ] 38 }, 39 { 40 "areaName": "神奈川県", 41 "areaNumber":"2", 42 "cityList": [ 43 { 44 "cityName": "横浜市", 45 "storeNumber":"1", 46 "storeList": [ 47 { 48 "id": "7", 49 "storeName": "横浜駅前店", 50 "storeNumber":"1", 51 "link": "yokohamaekimae" 52 } 53 ] 54 } 55 ] 56 } 57 ] 58}

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

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

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

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

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

guest

回答2

0

ベストアンサー

たとえばこう

javascript

1$(function(){ 2 var areaList; 3 var cityList; 4 $.getJSON("../storeselect.json", function(data){ 5 areaList=data.areaList; 6 for(var i in areaList){ 7 $("#selectbox1").append("<option value=" + areaList[i].areaNumber + ">" + areaList[i].areaName + "</option>"); 8 } 9 }); 10 $("#selectbox1").on('change',function(){ 11 var v=$(this).val(); 12 var area=areaList.filter(function(x){ 13 return x.areaNumber==v; 14 }); 15 $("#selectbox2 option:gt(0)").remove(); 16 if(area.length>0){ 17 cityList=area[0].cityList; 18 for(var i in cityList){ 19 $("#selectbox2").append("<option value=" + cityList[i].cityNumber + ">" + cityList[i].cityName + "</option>"); 20 } 21 } 22 }); 23});

※同じJSONデータをつかうなら再利用してください

投稿2018/03/15 03:45

yambejp

総合スコア114775

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

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

0

chabge...

開発ツールのコンソールでエラー内容がわかるので、確認してみてください。

投稿2018/03/15 03:30

kszk311

総合スコア3404

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

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

kszk311

2018/03/15 03:31

そこだけで動くはずです
rere

2018/03/15 03:34

すみません、次回からちゃんと確認します、、、、、 動きました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問