2012-09-05 124 views
0

我有下面的代碼,顯示下拉列表中的數據庫值。該查詢還選擇Jt_JOB_Description。我想根據文本區域中選擇的JT_JOB_TITLE顯示Jt_JOB_Description。幫助PLZ。下拉值

<select name="jTitle" id="jTitle" style="background-color: #D8D8D8"> 
<% 

Statement stt = conn.createStatement(); 
ResultSet rstt = stt.executeQuery("SELECT JT_JOB_TITLE, JT_JOB_DESCRIPTION FROM  uap.dbo.UAP_JOB_TITLE ORDER BY JT_JOB_TITLE"); 
while (rstt.next()) { 
%> 
<option value="<%=rstt.getString("JT_JOB_TITLE")%>">  <%=rstt.getString("JT_JOB_TITLE")%> 
</option> 
<% 
} 
stt.close(); 
rstt.close(); 
%> 
</select> 

    <textarea class="styled" rows="5" cols="12" name="jDesc" id="jDesc" ></textarea> 
+0

在下拉框中選擇你要再次提交頁面時會觸發查詢這一點,得到描述或其他方式是簡單地使用JavaScript。 – Ketan

+0

如何在這種情況下使用Javascript。我不想提交表格。因爲JT_JOB_DESCRIPTION包含來自數據庫的所有值。 – Nash

+0

請勿將JDBC代碼放入JSP中:[爲什麼JSP + JDBC不好](http://www.selikoff.net/2009/02/24/why-jdbc-jsp-bad/)。 Ceterum censeo ... –

回答

1

修改代碼如下

<select name="jTitle" id="jTitle" style="background-color: #D8D8D8" onchange="setText(this)"> 
<% 
String str=""; 
Statement stt = conn.createStatement(); 
ResultSet rstt = stt.executeQuery("SELECT JT_JOB_TITLE, JT_JOB_DESCRIPTION FROM uap.dbo.UAP_JOB_TITLE ORDER BY JT_JOB_TITLE"); 
while (rstt.next()) { 
str+=rstt.getString(1)+"@"+rstt.getString(2)+"#"; 
%> 
<option value="<%=rstt.getString("JT_JOB_TITLE")%>"><%=rstt.getString("JT_JOB_TITLE")%> 
</option> 
<% 
} 
stt.close(); 
rstt.close(); 
%> 
</select> 

<input type="hidden" name="txtHidStr" id="txtHidStr" value="<%=str %>" /> 

<textarea class="styled" rows="5" cols="12" name="jDesc" id="jDesc" ></textarea> 

和WIRTE給出下面的JavaScript函數

function setText(element){ 
var arr_main=document.getElementById("txtHidStr").value.split("#"); 
for(i=0;i<arr_main.length;i++) 
{ 
    arr_val=arr_main[i].split("@"); 
    if(arr_val[0]==element.value) 
    { 
     document.getElementById("jDesc").innerHTML=arr_val[1]; 
     break; 
    } 
} 
}