0

ユーザーが前の選択要素で選択を行ったときに、選択要素にオプションを動的に追加しています。struts-html tagJSPページ内で使用しています。誰でもこれを行う方法を提案できますか?

もっと具体的に言えば、struts2 tag(s:select list)Javascript を使用してデータを入力する必要があります。

私は3つの依存する動的ドロップダウンを持っています。それらはすべてデータベースから取り込まれているので、アクションを介してAjax + jquery + Struts2を使用し、クエリをデータベースに呼び出し、(Ajax + json)を介してリストをjavacriptに渡し、javascriptでリスト属性を設定していますs:select タグの json への

これは私が考えたことです。間違っている場合、またはこれを行うためのより良い方法がある場合は、私に知らせてください

4

1 に答える 1

0

明確なオプションの1つは、Struts2Doubleselectを使用することです。あなたは次のようなことをする必要があります

<s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
<s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

あなたはここでより多くの例を見つけることができます

二重選択を使用したくない場合は、Jqueryを使用して単純なS2選択タグを使用できます。2番目のドロップダウンの値をどこから取得するかがわかりません。これがアクションクラスからのものである場合は、 Struts2-JSONとしてデータをUIに送り返すのに役立つJSONプラグインであり、いつでもJqueryのJSON解析機能を使用してJSONを解析し、次のようにドロップダウンを埋めることができます。

var formInput='state='+statedata;       
   $.getJSON('search/fillDropDown',formInput,function(data) {
     $("#district  option:first").val("-1").text("Please select a  district");
     $('.result').html('' + data.districts + '');
     $.each(data.districts,function(index, value){
     var districtid = document.getElementById("district");
      var option=new Option(value,value);
         try{
           districtid.add(option);
         }
        catch(e){
        districtid.appendChild(option);
        });
     });

上記では、最初のドロップダウンで選択した値に基づいて別のドロップダウンに入力し、JSONプラグインを使用してアクションからリストをJSONデータとして送り返しています。

于 2012-08-21T10:09:40.730 に答える