有兩個表,表1有字段id,sel_table,report_name,表2有字段table_name_i,field_description如下:
表1(testsql): 表2(report):
id sel_table report_name table_name_i field_description
1 bb 報表1 bb 描述1
2 cc 報表2 bb 描述2
3 bb_jxyzj_ab 報表3 cc 描述3
4 dd 報表4 bb_jxyzj_ab 描述4
如何用JSP實現兩表下拉框聯動功能,當點下拉框1(顯示表1的report_name字段)中任意一值后,在下拉框2(顯示表2的field_description字段)中顯示與表1相關聯的字段
謝謝
12 个解决方案
給你個例子好了,多少個都沒有問題
自己copy就是了哦 ﹕)
String sql="select name from user";
ResultSet rs=stmt.executeQuery(sql);
out.print("<select name='name'><option value=''>--用戶名--</option>");
while(rs.next()){
out.print("<option value="+rs.getObject(1).toString()+">"+rs.getString(1));
out.print("</option>");
}
out.print("</select>");
String sql1="select password from user";
ResultSet rs1=stmt.executeQuery(sql1);
out.print("<select name='password'><option value=''>---密碼--</option>");
while(rs.next()){
out.print("<option value="+rs1.getObject(1).toString()+">"+rs1.getString(1));
out.print("</option>");
}
out.print("</select>");
嘿嘿,
樓上的樓上的點選第一個下拉框的值
第二個下拉框的值不會變;
要變得用javascript
直接從jsp中取出來的,參考一下吧。。
使用到了jstl,額外的說明,涉及兩個表,
銀行表 銀行cd(PK) 銀行名
支店表 銀行cd(PK) 支店cd(PK) 支店名
使用的地方,記得調用onchange
function setSelect()
{
var obj = SLDF0010;
//銀行cd
var selectBankCode = obj.bankCode.value;
if(selectBankCode == 0) {
obj.bankBranchCode.options.length = 0;
var cntIn = 0;
} else {
obj.bankBranchCode.options.length=1;
var cntIn = 1;
}
//session_XXX.transferDataInfoCombo.bankBranchInfo這里面放的是銀行list
<c:forEach items="${session_XXX.transferDataInfoCombo.bankBranchInfo}" var="bankBranchInfo">
if(selectBankCode == "<c:out value="${bankBranchInfo.bankCode}"/>") {
obj.bankBranchCode.options.length++;
obj.bankBranchCode.options[cntIn].text = "<c:out value="${bankBranchInfo.branchName}"/>";
obj.bankBranchCode.options[cntIn].value = "<c:out value="${bankBranchInfo.branchCode}"/>";
cntIn++;
}
</c:forEach>
obj.bankBranchCode.selectedIndex = 0;
}
我現在想,如果在<select>中加上onchange="form.submit()"
第二個下拉框是有變化的,相當於你遞交了,
但是接下來的問題是,你的第一個下拉框的值沒法保存。
總之最后還得用javascript來解決。
我曾經用ASP寫過,可以參考一下:
在<head>標簽內加入如下JAVASCRIPT代碼:
function searchbydepart()
{
susers.action="search.asp";
susers.submit();
}
在search.asp內加入如下代碼:
<form id="susers" method="post">
<tr>
<td align="left" width="23%" height="35"><font size="2">
你要檢索的是使用者<span lang="en-us">:</span></font></td>
<td width="17%" height="35">
<p align="left"><span lang="en-us"> </span><font size="2"><img border="0" src="image/find.gif" width="45" height="18"></font><span lang="en-us">
</span><select size="1" name="department" onchange="searchbydepart()">
<option selected >按部門</option>
<%
rs.open "select * from department",conn,1,2
if rs.eof and rs.bof then
response.write("暫時還沒有部門信息!")
end if
do until rs.eof
%>
<option><%=rs("department")%></option>
<%
rs.movenext
loop
rs.close()
%>
</select></td>
<td width="15%" height="35">
<p align="left"><span lang="en-us"> </span><select size="1" name="user">
<option selected value="按使用者" >按使用者</option>
<%
rs.open "select * from users where department='"&department&"'",conn,1,2
if rs.bof and rs.eof then
response.write("<option>"+department+"暫時沒有使用者</option>")
else
do until rs.eof
%>
<option value=<%=rs("u_id")%>><%=rs("username")%></option>
<%
rs.movenext
loop
rs.close()
end if
%>
</select></td>
<td height="35" width="44%"><font size="2">
<input type="button" value="搜 索" name="B1" onclick="searchbyuser()" style="font-size: 10pt">
</span><a href="userlist.asp">查看全部使用者<span lang="en-us">,</span>按這里>>></a></font></td>
</tr>
</form>