2012-02-12 2 views
0

Я получаю одно значение от массива JSON, но как я могу хранить несколько значений в массиве JSON и как я могу получить его с помощью JavaScript?получить более одного значения объектами массива JSON

auto.jsp:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#combo").change(function() { // after onchange event it goes to combo1.jsp 
     $.getJSON('combo1.jsp', { 
      count: this.value 
     }, function(responseData) { 
      var splitValues = responseData.name.split(/,/); 

      $("#combo1").empty().append("<option>please select</option>"); 


      for (var idx in splitValues) { 
       $("#combo1").append(
       $("<option></option>").html(splitValues[idx]).val(splitValues[idx])); 
      } 
     }); 

    }); 
});​ 


    </script> 

<body> 
//first combo box 
<select id="combo" name="count"> 

    <option value="">please select</option> 

     <option value="a">A</option> 

</select> 

//second combo box 

<select id="combo1" name="combo1Val"> 

    // i am getting only "5" here, but i want to show 1,2,3,4,5 as in drop down list 

</select> 
</body> 

combo1.jsp:

<% 
String count=request.getParameter("count");// by onchange event of first combo, i am 
getting value "a" here 
if(count.equalsIgnoreCase("a")){ 
// in my db there are 5 values i.e. 1,2,3,4,5 for single value "a", but while 
populating in second combo i am getting only one value "5", how? please ignore my db 
connection in jsp 

    JSONObject arrayObj= new JSONObject(); 
// by db connection i am fetching 5 values but while printing in javascript i am 
getting only last one that is "5" in second combo, how can i populate all values 
1,2,3,4,5 as drop down items in second combo box? 
// retrieveing 5 datas(1,2,3,4,5) from db where name =a 
while(rs.next()){ 
     t1=(String)(rs.getString(1));// there are 5 values in db relating to "a", but i 
am getting only last value i.e. "5" in second combo 
     } 
     arrayObj.put("name",t1); 
      response.setContentType("application/json"); 
     response.getWriter().write(arrayObj.toString()); 
     } 
%> 
+0

Вам не интересно проверить результат с помощью console.log (responseData)? – bondythegreat

+0

Вы должны использовать 'JSONArray' и добавить к нему элемент в цикле' while (rs.next()) {'(т. Е. 5 раз). –

+0

См. Также этот вопрос: * Как создать динамические выпадающие списки с помощью jQuery и jsp? * Http://stackoverflow.com/questions/2896730/how-to-generate-dynamic-drop-down-lists-using-jquery- and-jsp –

ответ

1

Я думаю, вы получаете только 5 в вашей второй комбо, потому что вы делаете ошибку в цикле. Вы можете сделать

//in combo1.jsp 

String selectedValue = request.getParameter("count"); 

Map<String, String> options = new Map<String, String>(); 
//get your data from db 
while(rs.next()){ 
    String t1=(String)(rs.getString(1)); 
    options.add(t1, t1); 
} 
String json = new Gson().toJson(options); 
response.setContentType("application/json"); 
response.setCharacterEncoding("UTF-8"); 
response.getWriter().write(json); 


    //to get data 
    $.getJSON('combo1.jsp', { 
     count: this.value 
    }, function(options) { 
     var dropdown2 = $('#combo1'); 
     $('>option', dropdown2).remove(); // Clean old options first. 
     if (options) { 
      $.each(opts, function(key, value) { 
       dropdown2.append($('<option/>').val(key).text(value)); 
      }); 
     } else { 
      dropdown2.append($('<option/>').text("Please select dropdown1")); 
     } 
    }); 
+0

благодарит много Никола за ответ, а я получаю только 5 во втором комбо, но приходят 3 ошибки. 1: ** Карта options = new Map ; ** говорит, что '(' или '[' expected. 2nd: ** options.add (t1, t1); ** говорит, что не может найти метод символа add. 3rd: ** String json = new Gson(). toJson (options); ** говорит, что не может найти класс символов Gson. Я думаю, что в вашем коде требуется небольшая модификация, вы почти закончили – harry

+0

, пожалуйста, помогите я Nicola, редактируя ваш код, я пытался, но не мог этого сделать. – harry

+0

@harry извините, я отредактировал мой код, я забыл() .. для другой ошибки вы должны импортировать Gson, я думаю –

Смежные вопросы