我通过JSON数组获取一个值,但是如何在JSON数组中存储多个值以及如何通过JavaScript检索呢?
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()); } %>
我认为您在第二个组合中只得到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")); } });