2013-03-18 231 views
0

我有两个选择框。它们都应该从数据库填充。第二个选择框应该基于第一个选择框中的选定选项填充。数据库连接性是成功的,我能够填充第一选择box.But我不知道如何根据我用来填充第一个选择框是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或别的东西这个。

回答

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

从服务器填充在

形式的值
+0

对于'your_action_url',你也可以给'jsp页面url'。就像'populateSecBox.jsp?firstBoxValue ='如果你不想使用servlet。 – 2013-03-18 08:44:48

+0

是你的问题通过解决方案解决?如果是,则将其标记为答案 – 2013-03-18 11:11:32

0

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

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

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

相关问题