<SCRIPT>
function OnMaterialTypeChange()
{
document.all.MaterialNameIfrm.src="MaterialNameList.asp?MaterialType="+document.all.MaterialType.value;
document.all.MaterialName.value="";
}
</SCRIPT>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">材辅料</FONT>
</TD>
</TR>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">类 别</FONT>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
<TD valign=center>
<SELECT id=MaterialType NAME=MaterialType size=1 style="width:100;font-size:9pt;" onchange="OnMaterialTypeChange()">
<OPTION></OPTION>
<OPTION>类型1</OPTION>
<OPTION>类型2</OPTION>
</SELECT>
</TD>
<TD width=10></TD> <TD>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">材辅料</FONT>
</TD>
</TR>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">名 称</FONT>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
<TD valign=center>
<INPUT id=MaterialName NAME=MaterialName type="hidden" size=0>
<IFRAME id="MaterialNameIfrm" src="MaterialNameList.asp" height=20 width=150 scrolling="no" border=0 framespacing=0 frameborder=0 ></IFRAME>
</TD>
<TD width=10></TD>
</TR>
</TBODY>
</TABLE>
*********MaterialNameList.asp******<!--#include file="MaterialTest.files/DB.fun" -->
<%
MaterialType=Request("MaterialType")
MaterialName=Request("MaterialName") Set RecSet=GetMdbStaticRecordset("/MaterialTest/材辅料检测数据库.mdb","select * From 材辅料名称设置表 Where 材辅料类别='"&MaterialType&"'") HTMLCode=""
While Not RecSet.EOF
HTMLCode=HTMLCode&"<OPTION value="&RecSet("材辅料名称")&">"&RecSet("材辅料名称")&"</OPTION>"
RecSet.MoveNext
Wend
IF HTMLCode<>"" Then
HTMLCode="<OPTION value=""""></OPTION>"&HTMLCode
End IF
%><HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312"><script>
function Init()
{
document.all.MaterialNameSelect.value="<%=MaterialName%>";
}function OnMaterialNameSelectChange()
{
parent.document.all.MaterialName.value=document.all.MaterialNameSelect.value;
}
</script>
</HEAD><BODY bgColor=#E4EAFC leftMargin=0 text=#000000 topMargin=0 MARGINWIDTH="0" MARGINHEIGHT="0" onload="Init()">
<SELECT id=MaterialNameSelect NAME=MaterialNameSelect size=1 style="width:150;height=20;font-size:9pt;" onchange="OnMaterialNameSelectChange()">
<%=HTMLCode%>
</SELECT>
</BODY>
</HTML>
function OnMaterialTypeChange()
{
document.all.MaterialNameIfrm.src="MaterialNameList.asp?MaterialType="+document.all.MaterialType.value;
document.all.MaterialName.value="";
}
</SCRIPT>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">材辅料</FONT>
</TD>
</TR>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">类 别</FONT>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
<TD valign=center>
<SELECT id=MaterialType NAME=MaterialType size=1 style="width:100;font-size:9pt;" onchange="OnMaterialTypeChange()">
<OPTION></OPTION>
<OPTION>类型1</OPTION>
<OPTION>类型2</OPTION>
</SELECT>
</TD>
<TD width=10></TD> <TD>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">材辅料</FONT>
</TD>
</TR>
<TR>
<TD>
<FONT style="font-size:9pt;color:#0000ff">名 称</FONT>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
<TD valign=center>
<INPUT id=MaterialName NAME=MaterialName type="hidden" size=0>
<IFRAME id="MaterialNameIfrm" src="MaterialNameList.asp" height=20 width=150 scrolling="no" border=0 framespacing=0 frameborder=0 ></IFRAME>
</TD>
<TD width=10></TD>
</TR>
</TBODY>
</TABLE>
*********MaterialNameList.asp******<!--#include file="MaterialTest.files/DB.fun" -->
<%
MaterialType=Request("MaterialType")
MaterialName=Request("MaterialName") Set RecSet=GetMdbStaticRecordset("/MaterialTest/材辅料检测数据库.mdb","select * From 材辅料名称设置表 Where 材辅料类别='"&MaterialType&"'") HTMLCode=""
While Not RecSet.EOF
HTMLCode=HTMLCode&"<OPTION value="&RecSet("材辅料名称")&">"&RecSet("材辅料名称")&"</OPTION>"
RecSet.MoveNext
Wend
IF HTMLCode<>"" Then
HTMLCode="<OPTION value=""""></OPTION>"&HTMLCode
End IF
%><HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312"><script>
function Init()
{
document.all.MaterialNameSelect.value="<%=MaterialName%>";
}function OnMaterialNameSelectChange()
{
parent.document.all.MaterialName.value=document.all.MaterialNameSelect.value;
}
</script>
</HEAD><BODY bgColor=#E4EAFC leftMargin=0 text=#000000 topMargin=0 MARGINWIDTH="0" MARGINHEIGHT="0" onload="Init()">
<SELECT id=MaterialNameSelect NAME=MaterialNameSelect size=1 style="width:150;height=20;font-size:9pt;" onchange="OnMaterialNameSelectChange()">
<%=HTMLCode%>
</SELECT>
</BODY>
</HTML>
<select name=school onchange="MulSelect(1)"></select>
<select name=department onkeypress=sortMe(this) onchange="MulSelect(2)"></select>
<select name=grade onchange="MulSelect(3)"></select>
<select name=student></select>
<p> </p>
</form><script>
// 四级联动
var arrSel=["school","department","grade","student"]
arrData=[];// 从数据库中读出四级联动的数据, 保存到 arrData 数组中(二维数组)
<%
dim conn,rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
set rs=conn.execute("select * from dbselect")
do while not rs.eof
%>arrData[arrData.length]=["<%=trim(rs("school"))%>","<%=trim(rs("department"))%>","<%=trim(rs("grade"))%>","<%=trim(rs("student"))%>"]<%
rs.movenext
loop
rs.close:set rs=nothing
conn.close:set conn=nothing
%>
</script><script>
// 下拉框选择变化时触发的函数,用于重新生成其下级下拉框
// num : 下拉框的级数, 1 表示最顶级
function MulSelect(num)
{
var i,j,arrTemp=[];
// 取得表单当前触发的下拉框的父级下拉框的值, 存放于 arrTemp 数组中(即不需要改变的值)
for(i=0;i<num;i++)
{
arrTemp[i]=eval("document.frm."+arrSel[i]).value
}
if(num<arrSel.length)
{
// 对于触发下拉框的下一级的下拉框
with(eval("document.frm."+arrSel[num]))
{
// 先清空内容
length=0
// 对所有的记录遍历
for(i=0;i<arrData.length;i++)
{
var find=false// 如果父级下拉框的记录不是当前选中的值,则跳过
for(j=0;j<num;j++)
{
if(arrTemp[j]!=arrData[i][j])
{
break;
}
}
if(j!=num)
{
continue;
}
// 这里已经可以保证第 i 项记录的数据属于当前选项的子数据// 检查循环过程中是否已经添加了该选项,如果已有了, 则 fine = true
for(m=0;m<options.length;m++)
{
if(options[m].text==arrData[i][num])
{
find=true
}
}
// 若当前没有选项或者尚未添加该选项项,则添加之
if(length==0||!find)
{
options[options.length]=new Option(arrData[i][num],arrData[i][num])
}
}// 递归调用生成下一级菜单的内容
MulSelect((num+1))
}
}
}// 调用联动函数初始化下拉框
MulSelect(0)
</script>