JSPで設計されたWebページに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>
以下のコードは、保存されたデータベース値を取得し、それらを新しい選択タグで選択されたものとして表示します。ただし、選択した値を新しいドロップダウンではなく上記の表に表示したいと思います。
<%
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)%>
<%
}
}
%>