我正在尝试使用servlet
从数据库中获取值,其中我使用JSON
对象将数据发送到JSP
JSP
中的jQuery
,{{1处理接收数据。我能够获取数据,但只能获取数据库的最后一个值,而不是这里的所有值都是我的代码,任何帮助都是感谢。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#country_id").change(function() {
var xyz = $("option:selected").val();
var Myselect = $('#state_ref');
$.getJSON("../Retrive_country?stateadd_1=none",
{countryREF : xyz } ,function(data){
$('#state_ref').empty();
$.each(data, function(index, state){
$("<option></option>")
.attr("value", state.stateId).text(state.stateName)
.appendTo('#state_ref');
});
});//end get
});
});
</script>
String sql1 = "SELECT * FROM state WHERE country_ref="+countryref+"
PreparedStatement pst1 = db.getConnection().prepareStatement(sql1);
ResultSet j = pst1.executeQuery();
JSONObject obj = new JSONObject();
pw.println("[");
while (j.next()) {
state_id = j.getString(1);
state = j.getString(2);
country_ref = j.getString(3);
obj.put("stateId", state_id);
obj.put("stateName", state);
}
pw.println(obj);
pw.println("]");
<div class="span2 clear">
<select name="country_id" id="country_id">
<option>-select-</option>
<option id="blabbb">america</option>
<option id="blabbb">UK</option>
<option id="blabbb">Africa</option>
</select></div>
<div class="span2 clear">
<select name="state_ref" id="state_ref">
<option ></option>
</select></div>
当我尝试console.log(data);
时,结果是
这里我只得到一个值(列的最后一个值),而不是从数据库中获取所有值。
答案 0 :(得分:0)
如控制台输出中所示,您只从servlet中获取一个对象,这就是显示只有一个选项的原因。
您可以使用JSONObject
和JSONArray
一起构建json,例如creating json string using JSONObject and JSONArray
或者如果您通过包含逗号并在循环中打印对象来修改连接
e.g。 未测试
JSONObject obj = new JSONObject();
pw.println("[");
while (j.next()) {
state_id = j.getString(1);
state = j.getString(2);
country_ref = j.getString(3);
obj.put("stateId", state_id);
obj.put("stateName", state);
pw.println(obj+",");
}
pw.println("]");
答案 1 :(得分:0)
ArrayList<String> statelist = new ArrayList<String>();
ArrayList<String> stateidlist = new ArrayList<String>();
String sql1 = "SELECT * FROM state WHERE country_ref="+countryref+"
PreparedStatement pst1 = db.getConnection().prepareStatement(sql1);
ResultSet j = pst1.executeQuery();
JSONObject obj = new JSONObject();
pw.println("[");
while (j.next()) {
state_id = j.getString(1);
state = j.getString(2);
country_ref = j.getString(3);
stateidlist.add(state_id);
statelist.add(state);
}
obj.put("statelist",statelist);
obj.put("stateidlist",stateidlist);
pw.println("]");
<强> JQuery的:强>
<script>
$(document).ready(function(){
$("#country_id").change(function() {
var xyz = $("option:selected").val();
var Myselect = $('#state_ref');
$.getJSON("../Retrive_country?stateadd_1=none",
{countryREF : xyz } ,function(data){
console.log(data);
$('#state_ref').empty();
$.each(data, function(index, state){
for(var prop in state.stateidlist){
var stateidvalue = state.stateidlist[prop];
var statelistvalue = state.statelist[prop];
$("<option></option>")
.attr("value", stateidvalue).text(statelistvalue)
.appendTo('#state_ref');
}
});
});//end get
});
});
</script>