0

我正在使用 Struts 2。我正在尝试使用来自数据库的数据填充组合框(选择),这些值由另一个组合框定义。

当我从第一个组合框中选择一个状态时,第二个必须从数据库加载数据。

这就是我所拥有的:

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;
    }

但是,当我选择一个状态时,第二个保管箱没有被填充,在 Web 控制台上,我将 http 请求显示为“Ok”。

我对 Ajax 和 Struts 2 很陌生..请帮助我..谢谢 :)

4

1 回答 1

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);
    });
});
于 2012-10-12T23:09:49.837 回答