0

Struts 2を使用しています。コンボボックスにデータベースからのデータを入力(選択)しようとしています。値は別のコンボボックスによって定義されています。

最初のコンボボックスから状態を選択すると、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;
    }

ただし、2番目のドロップボックスにデータが入力されていない状態を選択すると、Webコンソールでhttpリクエストが「OK」として表示されます。

私はAjaxとStruts2で非常に新しいです。助けてください..ありがとう:)

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 に答える