teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

エラーの場合処理を修

2018/11/01 14:57

投稿

wimaru
wimaru

スコア16

title CHANGED
File without changes
body CHANGED
@@ -86,11 +86,12 @@
86
86
  mode: "mail"
87
87
  }
88
88
  })
89
- .done(function(data){
89
+ .done(function(data, textStatus, jqXHR){
90
90
  $('.change_shop option').remove();
91
91
  $.each(data, function(id, name){
92
92
  $('.change_shop').append($('<option>').text(name).attr('value', id));
93
+ }).fail(function(jqXHR, textStatus, errorThrown){
93
- })// エラーの場合処理を追加
94
+ // エラーの場合処理
94
95
  $("div.result").text("エラーが発生しました。ステータス:" + jqXHR.status);
95
96
  });
96
97
  });
@@ -106,11 +107,12 @@
106
107
  mode: "mail"
107
108
  }
108
109
  })
109
- .done(function(data){
110
+ .done(function(data, textStatus, jqXHR){
110
111
  $('.change_shop option').remove();
111
112
  $.each(data, function(id, name){
112
113
  $('.change_shop ').append($('<option>').text(name).attr('value', id));
114
+ }).fail(function(jqXHR, textStatus, errorThrown){
113
- })// エラーの場合処理を追加
115
+ // エラーの場合処理
114
116
  $("div.result").text("エラーが発生しました。ステータス:" + jqXHR.status);
115
117
  });
116
118
  });
@@ -180,4 +182,8 @@
180
182
 
181
183
 
182
184
  =エラーの場合処理を追加=
183
- 上記/*都道府県用に追記した部分*/に、デバッグコードを追加してみましたが、何も表示されません。
185
+ 上記/*都道府県用に追記した部分*/に、デバッグコードを追加してみましたが、何も表示されません。
186
+
187
+ =エラーの場合処理を修正=
188
+ 上記/*都道府県用に追記した部分*/に、.fail(function(jqXHR, textStatus, errorThrown)が漏れておりました。
189
+ すいません

2

エラーの場合処理を追加

2018/11/01 14:57

投稿

wimaru
wimaru

スコア16

title CHANGED
File without changes
body CHANGED
@@ -90,8 +90,10 @@
90
90
  $('.change_shop option').remove();
91
91
  $.each(data, function(id, name){
92
92
  $('.change_shop').append($('<option>').text(name).attr('value', id));
93
+ })// エラーの場合処理を追加
94
+ $("div.result").text("エラーが発生しました。ステータス:" + jqXHR.status);
93
- });
95
+ });
94
- });
96
+ });
95
97
 
96
98
 
97
99
  $('.change_city').on('change', function(){
@@ -108,10 +110,10 @@
108
110
  $('.change_shop option').remove();
109
111
  $.each(data, function(id, name){
110
112
  $('.change_shop ').append($('<option>').text(name).attr('value', id));
111
- });
113
+ })// エラーの場合処理を追加
112
- });
114
+ $("div.result").text("エラーが発生しました。ステータス:" + jqXHR.status);
113
115
  });
114
- });
116
+ });
115
117
  </script>
116
118
  ```
117
119
  ### 市町村用の元々あった shop.php
@@ -174,4 +176,8 @@
174
176
  ```
175
177
 
176
178
  =現象=
177
- 追記したものを入れ込んでみましたが、単純に<script></script>部分をコピーし、変数部分を都道府県に合わせてみたのですが、返り値が戻ってこないのか、市町村選択も出来ない状態です。
179
+ 追記したものを入れ込んでみましたが、単純に<script></script>部分をコピーし、変数部分を都道府県に合わせてみたのですが、返り値が戻ってこないのか、市町村選択も出来ない状態です。
180
+
181
+
182
+ =エラーの場合処理を追加=
183
+ 上記/*都道府県用に追記した部分*/に、デバッグコードを追加してみましたが、何も表示されません。

1

自身で追記したものを入れ込んでみました

2018/11/01 14:44

投稿

wimaru
wimaru

スコア16

title CHANGED
File without changes
body CHANGED
@@ -33,9 +33,50 @@
33
33
  <select class="form-control change_shop" name="mail_class">
34
34
  <option value="">店舗を指定しない</option>
35
35
  </select>
36
+
37
+ /*都道府県用に追記した部分*/
36
38
  <script>
37
39
  $(function () {
40
+ $.ajax({
41
+ url: "area.php",
42
+ type: "POST",
43
+ dataType: 'json',
44
+ data: {
45
+ city_id: $(".change_area").val(),
46
+ mode: "mail"
47
+ }
48
+ })
49
+ .done(function(data){
50
+ $('.change_city option').remove();
51
+ $.each(data, function(id, name){
52
+ $('.change_city ').append($('<option>').text(name).attr('value', id));
53
+ });
54
+ });
38
55
 
56
+
57
+ $('.change_city').on('change', function(){
58
+ $.ajax({
59
+ url: "area.php",
60
+ type: "POST",
61
+ dataType: 'json',
62
+ data: {
63
+ school_id: $(".change_area").val(),
64
+ mode: "mail"
65
+ }
66
+ })
67
+ .done(function(data){
68
+ $('.change_city option').remove();
69
+ $.each(data, function(id, name){
70
+ $('.change_city ').append($('<option>').text(name).attr('value', id));
71
+ });
72
+ });
73
+ });
74
+ });
75
+ </script>
76
+ /*都道府県用に追記した部分*/
77
+ <script>
78
+ $(function () {
79
+
39
80
  $.ajax({
40
81
  url: "shop.php",
41
82
  type: "POST",
@@ -73,7 +114,7 @@
73
114
  });
74
115
  </script>
75
116
  ```
76
- ### 該当ソースコード shop.php
117
+ ### 市町村用元々あった shop.php
77
118
 
78
119
  ```ここに言語を入力
79
120
  //Ajaxで渡ってきた値をもとに modelテーブル から該当する model を抽出
@@ -100,4 +141,37 @@
100
141
  header('Content-Type: application/json');
101
142
  //json形式で index.php へバックする
102
143
  echo json_encode($model_list);
103
- ```
144
+ ```
145
+
146
+
147
+ ### 都道府県用に追加した area.php
148
+
149
+ ```ここに言語を入力
150
+ //Ajaxで渡ってきた値をもとに modelテーブル から該当する model を抽出
151
+ $school_id = $_POST['area_id'];
152
+ $mode = "none";
153
+ if( isset($_POST['mode']) )
154
+ $mode = $_POST['mode'];
155
+
156
+ $db = new db_master();
157
+ $class_list = $db->select("table名", array(), "area_id=\"" . $area_id. "\" ORDER BY area_name ASC", "multi");
158
+
159
+ //抽出された値を $model_list配列 に格納
160
+ $model_list = array();
161
+ if($mode == "none")
162
+ $model_list[0] = "選択してください";
163
+ else if($mode == "mail")
164
+ $model_list[0] = "店舗を指定しない";
165
+
166
+ foreach($class_list as $key => $value)
167
+ {
168
+ $model_list[$value["class_id"]] = $value["class_name"];
169
+ }
170
+
171
+ header('Content-Type: application/json');
172
+ //json形式で index.php へバックする
173
+ echo json_encode($model_list);
174
+ ```
175
+
176
+ =現象=
177
+ 追記したものを入れ込んでみましたが、単純に<script></script>部分をコピーし、変数部分を都道府県に合わせてみたのですが、返り値が戻ってこないのか、市町村選択も出来ない状態です。