2017-02-03 8 views
0

これは死にたいと思っていますが、私の問題は既に利用可能な回答と少し違っています。AJAXでサーブレットから受け取った複数のJSONオブジェクトを解析する方法

最初のコンボボックスの変更リスナーで2つの他のコンボボックスの値を変更したいとします。これはちょうど1つのコンボボックス/ドロップダウンがあったときにスムーズに起こっていました。しかし、今では、データの分離や解析は、2番目のコンボボックスでは起こっていません。

categoryValue = req.getParameter("bellCategorySel"); 

List<String> paramList = insightDbConn.getParametersList(categoryValue);     
List<String> testStationList = insightDbConn.getTestStationsFromTestRecords(categoryValue); 

String parsedParamList = new Gson().toJson(paramList); 
String parsedtestStationList = new Gson().toJson(testStationList); 

PrintWriter out = resp.getWriter(); 
JSONObject json = new JSONObject(); 
json.put("parameters", parsedParamList); 
json.put("teststations", parsedtestStationList); 
out.print(json); 

これはバックエンドのサーブレットコードです。私はカテゴリの価値を与える第1コンボボックスに変更リスナーを配置しました。この値に基づいて、他の2つのコンボボックスに入れることを意味する他の値のセットを呼び出しています(私は確認しました、値は適切に来ています)。

1つのリストだったとき、すべてが良好でした。

$("#bellCategorySel").change(function(e) {  
    $.ajax({ 
      type : 'POST', 
      cache : false, 
      data : { 
       frmSubmit : 'ajax', 
       bellCategorySel : document.getElementById("bellCategorySel").value, 
      }, 
      dataType: 'json', 
      url : '/AnalysisPanel/gaussianbell', 
      success : function(jsonResponse) {      
       var arr = JSON.parse(jsonResponse.parameters), 
       opts = ''; 
        $.each(arr, function(key, val){ 
         opts += '<option value="' + val + '">' + val + '</option>'; 
        }); 
        $('#bellParameterSel').empty().append(opts) 

       var stations = JSON.parse(jsonResponse.teststations), 
       stns = ''; 
        $.each(stns, function(key, val){ 
         stns += '<option value="' + val + '">' + val + '</option>'; 
        }); 
        $('#testStation').empty().append(stns) 
      } 
     }); 
     e.preventDefault(); 
     return false; 
}); 

はクロームでデバッグをしようとしたが、ありません!今すぐ下記2.

AJAX WIH情報を解析し、私のフロントエンドコードでもありますすべてが良かった。 最初のコンボボックスの値は変更されますが、2番目のコンボボックスの値は変更されますは空白/ nullのままです。理由は分かりません!

   var stations = JSON.parse(jsonResponse.teststations), 
      stns = ''; 
       $.each(stns, function(key, val){ 

修正:

はそれはあなたがeach()呼び出しで繰り返すものではありません、私はそれはあなたがJSONデータでいっぱいにJavascriptの変数stationように見える初心者

答えて

0

午前私に簡単にアクセスしてくださいそれまで:

   $.each(stations, function(key, val){ 
+0

お時間をいただきありがとうございます。はい、あなたが指摘した小さな間違いです。また、私はバックエンドでもいくつかの仕掛けをしました。 json配列形式で2つの文字列を連結し、フロントエンドで2つの異なる配列に分割しました。それは働いた:) – Vishal

関連する問題