0

我有两个选择框。它们都应该从数据库中填充。第二个选择框应该根据第一个选择框中的选定选项进行填充。数据库连接成功,我能够填充第一个选择框。但我没有知道如何根据第一个选择框填充第二个选择框。我用来填充第一个选择框的代码是,

        <select class="weekcombo">
        <%
        List list= new DataManager().getlist();
        for(int i = 0; i < list.size(); i++) {
        out.write("<option value=\""+ list.get(i)+ "\">"+ list.get(i));
        }
        %>

我不知道是否为此使用 servlet 或其他东西。

4

2 回答 2

1

对于第一个选择框,您可以默认填充值,就像您在上面的代码中提到的那样:

<select class="weekcombo" onchange="populateSecValues(this)">
    <%
        List list= new DataManager().getlist();
        for(int i = 0; i < list.size(); i++) {
            out.write("<option value=\""+ list.get(i)+ "\">"+ list.get(i));
        }
    %>
</select>

<select id="secBox" class="weekcombo">
</select>

Javascript: 在 urlString 中,您可以传递第一个选择框值,就像我在下面的代码片段中传递的一样

function populateSecValues(obj){
       // use here ajax call .. which will populate second box data 
     var firstBoxValue = obj.value;
     var urlString ="your_action_url?firstBoxValue="+firstBoxValue ;
     $.ajax({
         type: "POST",
         url: urlString  ,
         success: function(result) {
           console.info("result"+result);
           $("#secBox").html(result);
    }
});
}

从服务器以以下形式填充值

<option value ="secBoxValue">secBoxValue</option>
于 2013-03-18T06:31:52.150 回答
0

Sagar Dalvi 有一个很好的解决方案。根据第一个选择的项目填充第二个选择框的唯一方法是使用 Javascript。这是因为,除非您使用 Javascript,否则在页面加载时需要知道第二个选择框的内容 - 在用户做出任何选择之前。

使用 Javascript,当用户使用 AJAX 调用进行第一次选择时,该页面能够将选项动态加载到第二个选择框中。

在不使用 javascript 的情况下解决此问题的唯一方法是让表单跨越一页以上,因此第二个选择框位于下一页上。

于 2013-03-18T10:23:27.517 回答