在选择另一个选择框时填充选择框

时间:2013-03-18 06:18:01

标签: mysql jsp servlets

我有两个选择框。它们中的任何一个都应该从数据库中填充。应该根据第一个选择框中的选定选项填充第二个选择框。数据库连接成功,我可以填充第一个选择框。但我不知道如何填充第二个选择框基于我用来填充第一个选择框的first.code,

        <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或其他东西。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

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

没有使用javascript的唯一方法就是让表单跨越多个页面,所以第二个选择框在下一页。