看戏机支持什么格式:如何选择2级下拉列表后显示表中其他关联值

来源:百度文库 编辑:中科新闻网 时间:2024/05/11 03:25:21
数据库2个表,表名和属性值如下
CourseN: C_ID C_Name
Course: CourseID CourseName CourseTime CoursePlace CourseLeft
2级下拉列表已经建立,请问选择CourseName CourseTime后怎么才能输出所对应的CoursePlace 及CourseLeft的值,该如何实现啊,最好能给个详细的代码

<head>
<script language="javascript">
<!--
var sSort = new Array();
var num = 0;
<%
dim conn,rs,grs,i,j,pstr
pstr=""
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
set grs=server.createobject("adodb.recordset")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/SelCourse/SelCourse.mdb")

rs.open "select * from CourseN;",conn,1,1
for i=0 to rs.recordcount-1
pstr=pstr & "<option value=""" & rs("C_Name") & """>" & rs("C_Name") & "</option>"
getsub(rs("C_Name"))
rs.movenext
next
rs.close()
set rs=nothing
set grs=nothing

sub getsub(pname)
grs.open "select * from Course where CourseName='" & pname & "';",conn,1,1
for j=1 to grs.recordcount
response.write "sSort[num++] = new Array(""" & grs("CourseTime") & """ ,""" & pname & """);" & vbCrlf
grs.movenext
next
grs.close()
end sub
%>
var nsSortCount = num;
function sdbSortChange(cmbsdbSort, cmbsSort)
{
var nSelsdbSort = cmbsdbSort.selectedIndex;
var ssdbSort = cmbsdbSort.options[nSelsdbSort].value;
cmbsSort.length = 0;
cmbsSort.options[0] = new Option('-请选择-', '');
for(var i=0; i<nsSortCount; i++)
{
if(sSort[i][1] == ssdbSort)
{
cmbsSort.options[cmbsSort.length] = new Option(sSort[i][0], sSort[i][0]);
}
}
}
function InitsSort(cmbsdbSort, cmbsSort)
{
var nSelsdbSort = cmbsdbSort.selectedIndex;
var ssdbSort = cmbsdbSort.options[nSelsdbSort].value;
var ssSort = cmbsSort.options[0].value;
cmbsSort.length = 0;
cmbsSort.options[0] = new Option('-请选择-', '');
var n = 0;
for(var i=0; insSortCount; i++)
{
if(sSort[i][1] == ssdbSort)
{
cmbsSort.options[cmbsSort.length] = new Option(sSort[i][0], sSort[i][0]);
if(sSort[i][0] == ssSort)
cmbsSort.options[cmbsSort.length-1].selected = true;
}
}
}
//-->
</script>
</head>
<body>
<<form action="index.asp?id=1" method="post" name="frmdlist" id="frmdlist">
<table width="408" border="0" align="center" cellpadding="2" cellspacing="2">
<td width="400" align="center"> </td>
<tr>
<td align="center">选择实验名称
<%response.write "<select name=""lstb"" style=""width:200"" onChange=""sdbSortChange(this,frmdlist.lsts);"">" & pstr & "</select>"%></td>
</tr>
<td align="center">选择实验时间
<select style="width:200" name="lsts" id="lsts">
</select></td>

这种二级关联如果要在客户端实现,就要事先把所有分类数据下载下去,或者也可以在用户作出选择后,再到服务器上读取对应数据,不过这样实现更麻烦,而且速度更慢。

事先下载数据的方法的方法有很多种,比如说:
法一:直接用数据库数据生成包含数据的JS代码,即是(你的字段没说明含义,就不用你的了):
<script language="javascript">
var myLevel1Data = new Array(
//这里写用ADO的RS填充的代码,比如:
<%for ...%>
"<%=rs("")%>",
<%Next%>
//注意:for与Next之间的代码,rs后的那个逗号在最后一行是不需要的,要去掉
);

</script>

在用户改变选择时,直接用上面的变量来更改

法二:基本同上,可以把数据起码放在<div></div>中