2012-02-12 6 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

답장을 보내 주신 Nicola에게 감사드립니다. 나중에 두 번째 콤보가 5 점만 나오지만 3 가지 오류가 발생합니다. 첫 번째 : ** Map options = new Map ; ** '('또는 '['expected ... 두 번째 : ** options.add (t1, t1); 3 번째 : ** String json = new Gson(). toJson (옵션); ** 심볼 클래스 Gson을 찾을 수 없다는 것을 말하면서 코드에 약간의 수정이 필요하다고 생각하면 거의 완료되었습니다. – harry

+0

제발 도와주세요. 내가 니콜라 코드를 편집하여 시도했지만, 그것을 할 수 없었다. – harry

+0

@harry 미안하지만 내 코드를 잊어 버렸어.() .. 다른 오류가있어서 Gson을 가져와야한다. –

관련 문제