【问题标题】:Multiselect Dropdown selected多选下拉选择
【发布时间】:2012-11-06 20:46:15
【问题描述】:

我在用 JSP 设计的网页上有 multiSelect 下拉菜单。最终用户将选择所需的选项并将表单保存到数据库。下面是从数据库主表中获取值和索引的原始下拉列表。选定的值保存在另一个表中。

页面上的原始下拉菜单。

 <table>
 <tr>
 <td> Departments Impacted   </td>
    <td><select multiple="multiple" name="abc" id="abc">
     <%

         Statement stt3 = conn.createStatement();
         ResultSet rstt3 = stt3.executeQuery("SELECT DEPT_DEPARTMENT_ID, DEPT_NAME FROM [PA].[dbo].[PA_DEPT_DEPARTMENT] ORDER BY DEPT_NAME ASC");
         while (rstt3.next()) {

         %>

         <option value="<%=rstt3.getString(1)%>"><%=rstt3.getString(2)%>
         </option>
         <%
             }
            stt3.close();
     rstt3.close();
                            %>
    </select></td>  </tr>

下面的代码检索保存的数据库值并将它们显示为在新的 select 标记中选择。但是,我希望所选值显示在上表中,而不是新的下拉列表中。

<%
 ArrayList al = new ArrayList();    
 String dept = null;
 String deptID = "SELECT DEPARTMENT_ID FROM  [PA_RD_DEP_REQ_DETAILS_DEPARTMENT_MAP] inner join  [PA_RD_REQUISITION_DETAILS] on RD_DEP_RD_ID=RD_ID where RD_ID=?";

         PreparedStatement pst4 = conn.prepareStatement(deptID);
         pst4.setString(1, RD_ID);
         ResultSet rstt1 = pst4.executeQuery();
         while (rstt1.next()) {
             dept=rstt1.getString(1);
            al.add(dept);

         }
         for(int i=0; i<al.size(); i++)
         {
         String deptName = "SELECT [DEPT_NAME] FROM  [PA_DEPT_DEPARTMENT] WHERE [DEPT_DEPARTMENT_ID]=?";
         PreparedStatement pst5 = conn.prepareStatement(deptName);
         pst5.setString(1, (String)al.get(i));
         ResultSet rstt5 = pst5.executeQuery();
         while (rstt5.next()) {
             %>
             <option value="<%=(String)al.get(i)%>" selected="selected"><%=rstt5.getString(1)%>
             <%  


         }
         }


         %>

【问题讨论】:

  • @downvoter :对一个问题投反对票很容易。如果您同时提供适当的理由,我们将不胜感激。
  • 为什么还要使用 JavaScript 来选择 JSP 页面上的值?
  • @mabako :如果有更好的选择,请告诉我。我认为这是唯一的方法(使用 Javascript)。
  • 你试过什么?你的代码是什么样的?更具体地说,您的问题是什么?
  • javascript 在某些情况下可能有用,但在这种情况下就不行了。

标签: java javascript jsp


【解决方案1】:

selected attribute 添加到option 标记将使其被选中。这可以为多个选项标签完成,而不需要 JavaScript:

<select multiple="multiple">
  <option selected="selected" value="volvo">Volvo</option>
  <option selected="selected" value="saab">Saab</option>
  <option value="vw">VW</option>
  <option value="audi">Audi</option>
</select>

【讨论】:

  • 大卫,感谢您的回答。但是,如果用户选择它并将其保存到数据库,我想选择 OPTION。所以在数据库中选择了值。如果用户再次打开表单,那么我需要选择将值存储在 DB 中的选项。
  • 最好在生成 HTML 代码时按上述方式完成。
  • 我可以帮你解决具体的问题,但我不会写你的程序。
  • 这就是我想要的,我不要程序。我更喜欢由我完成的程序编写。帮我解决这个问题。写两行实际上我需要做的。谢谢。
  • 我已经更新了我尝试过的代码。我想在表格中显示可用的下拉列表。
猜你喜欢
  • 2016-12-30
  • 1970-01-01
  • 2018-12-28
  • 2021-06-14
  • 2021-05-13
  • 1970-01-01
  • 2018-04-01
  • 1970-01-01
  • 2018-09-17
相关资源
最近更新 更多