无级分类,无级联动下拉菜单
作者:Sky 日期:2008-05-23
先说明一下,用的就是zl_class的那个无级向下分类的数据库。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936" %>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("zl_class.mdb")
Conn.Open ConnStr
Set rs=conn.execute("Select * From zl_class order By orderID")
cplists=rs.Getrows
isql="select top 1 depth from zl_class order by depth desc"
Set irs=conn.execute(isql)
j=irs("depth") '这个是分类的级数
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language="javascript">
//<!--
//window.onerror=function(){return true};
function changeb(dlstr){
<%response.write "var kl="&j&";"%> //输出让kl=这个级数
var k=0;
if (dlstr<0){
k=Math.abs(dlstr)+1;
for (i=k;i<=kl ;i++ )
{
var Vcpfls="cpfl"+i.toString();
document.getElementById(Vcpfls).innerHTML="";
}
}else{
var cpfls="";
var Iswrite=0;
var MyfldjStr="";
for (var i=0;i<cplists.length; i++) //先装数组里的数据循环出来
{
if (cplists[i][2]==dlstr) { //再判断parentid和传递的value是不是满足条件
cpfls="cpfl"+cplists[i][3].toString();
var Iswrite=1;MyfldjStr+="<option value='"+cplists[i][0]+"'>"+cplists[i][1]+"</option>";}
if (cplists[i][0]==dlstr)
{
k=cplists[i][3]+1;
}
}
MyfldjStr+="</select>";
MyfldjStr=" <select size=1 name="+cpfls+" onchange=changeb(this.value)><option value='-"+k+"'>=请选择=</option>"+MyfldjStr;
if (k>=0&&k<=kl)
{
for (i=k;i<=kl ;i++ )
{
var Vcpfls="cpfl"+i.toString();
document.getElementById(Vcpfls).innerHTML="";
}
}
if (Iswrite) {document.getElementById(cpfls).innerHTML=MyfldjStr;}
}
}
<%
response.write "var cplists=new Array();"
for i=0 to UBound(cplists,2)
response.write "cplists["&i&"]=new Array("&cplists(0,i)&",'"&cplists(1,i)&"',"&cplists(2,i)&","&cplists(4,i)&");"
next
%>
//-->
</script>
</HEAD>
<BODY>
<%
Dim q
For q=0 To j
response.write ("<span id=cpfl"&q&"></span>")
Next
%>
<script language="javascript">changeb(0);</script>
</BODY>
</HTML>
由于本人水平有限,写的有点乱,还请见谅,再此感谢我的领导和zl_class的作者给与的帮助 。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936" %>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("zl_class.mdb")
Conn.Open ConnStr
Set rs=conn.execute("Select * From zl_class order By orderID")
cplists=rs.Getrows
isql="select top 1 depth from zl_class order by depth desc"
Set irs=conn.execute(isql)
j=irs("depth") '这个是分类的级数
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language="javascript">
//<!--
//window.onerror=function(){return true};
function changeb(dlstr){
<%response.write "var kl="&j&";"%> //输出让kl=这个级数
var k=0;
if (dlstr<0){
k=Math.abs(dlstr)+1;
for (i=k;i<=kl ;i++ )
{
var Vcpfls="cpfl"+i.toString();
document.getElementById(Vcpfls).innerHTML="";
}
}else{
var cpfls="";
var Iswrite=0;
var MyfldjStr="";
for (var i=0;i<cplists.length; i++) //先装数组里的数据循环出来
{
if (cplists[i][2]==dlstr) { //再判断parentid和传递的value是不是满足条件
cpfls="cpfl"+cplists[i][3].toString();
var Iswrite=1;MyfldjStr+="<option value='"+cplists[i][0]+"'>"+cplists[i][1]+"</option>";}
if (cplists[i][0]==dlstr)
{
k=cplists[i][3]+1;
}
}
MyfldjStr+="</select>";
MyfldjStr=" <select size=1 name="+cpfls+" onchange=changeb(this.value)><option value='-"+k+"'>=请选择=</option>"+MyfldjStr;
if (k>=0&&k<=kl)
{
for (i=k;i<=kl ;i++ )
{
var Vcpfls="cpfl"+i.toString();
document.getElementById(Vcpfls).innerHTML="";
}
}
if (Iswrite) {document.getElementById(cpfls).innerHTML=MyfldjStr;}
}
}
<%
response.write "var cplists=new Array();"
for i=0 to UBound(cplists,2)
response.write "cplists["&i&"]=new Array("&cplists(0,i)&",'"&cplists(1,i)&"',"&cplists(2,i)&","&cplists(4,i)&");"
next
%>
//-->
</script>
</HEAD>
<BODY>
<%
Dim q
For q=0 To j
response.write ("<span id=cpfl"&q&"></span>")
Next
%>
<script language="javascript">changeb(0);</script>
</BODY>
</HTML>
由于本人水平有限,写的有点乱,还请见谅,再此感谢我的领导和zl_class的作者给与的帮助 。
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: