我正在使用Struts 2.我正在尝试使用数据库中的数据填充组合框(select),这些值由另一个组合框定义。
当我从第一个组合框中选择一个状态时,第二个必须从数据库中加载数据。
这就是我所拥有的:
JSP:
<script type="text/javascript">
function cargarMunicipios(estado){
console.log(estado);
var estado="estado="+estado;
$.getJSON('getMunicipios'),estado,function(data){
$('.result').html(''+data.estados+'');
$.each(data.estados,function(index,value){
var opcion=new Option(value);
var municipio=document.getElementById("municipios");
console.log(value);
municipio.add(opcion)
})
}
}
</script>
...
<s:select list="estados" name="estados" listValue="nombre"
listKey="nombre" label="Estado" id="estados" onchange="cargarMunicipios(this.value)"/>
<s:select list="municipios" name="municipios" listValue="nombre"
listKey="nombre" label="Municipio" id="municipios"
/>
这是对struts.xml的操作:
<action name="getMunicipios" class="actions.PrepararMedicosAction" method="loadMunicipios">
<result type="json">
<param name="root">nombre</param>
</result>
</action>
这是通过操作调用的方法:
public String loadMunicipios(){
municipios=fachada.buscaMunicipios(new Estado(Integer.SIZE, estado, ""));
return SUCCESS;
}
但是当我选择一个状态时,第二个Dropbox没有被填充,在Web控制台上我得到http请求为“Ok”。
我是Ajax和Struts 2的新手..请帮帮我..谢谢:)。
答案 0 :(得分:1)
看起来你正在使用jQuery。尝试这样的事情:
$.getJSON('getMunicipios'),estado,function(data){
$('.result').html(''+data.estados+'');
$.each(data.estados,function(index,value){
var opcion= $('<option>').attr('value', value);
var municipio = $("#municipios");
console.log(value);
municipio.append(opcion);
});
});