关于无限层次结构的实现代码(asp+数据库+js)
代码可以优化,请根据自己的需要进行优化。解释uff1a
首先,所有的分类都是在JS数组中读取和存储的(如果数据量很大,可能会有点麻烦)。
选定后,返回父分类ID以从数组中找到适当的分类,然后将其显示给用户。
数据库设计(可以根据自己的要求添加字段,分类是什么,等等)
字段类型描述
自动编号
cotename文本分类名称
byid数字母分类ID(即表的ID,根接触时间值是0)
js代码的一部分(命名为asp)
复制代码代码如下所示:
<%昏暗的conn
设置conn = server.createobject(数据连接)
conn.connectionstring =商=微软。飞机。OLEDB。4 _;
数据源=server.mappath(Cote .mdb)
康涅狄格州开
%>
功能checklm(价值){
无功byid =新的数组();
无功cotename =新的数组();
新数组();
var i;
无功id_s;
无功byid_s;
无功cotename_s;
无功thevalue_r;
var数据=
id_s =| ;
cotename_s =- |;
< %集= server.createobject(ADODB。记录集)
SQL =SELECT * FROM { }的byid db_cote,ID
rs.open sql,Conn,1,1
我= 0
if not rs.eof then
do while not rs.eof
响应。写(我{我} =RS(ID);Chr(10))
响应。写(byid {我} =RS(byid );Chr(10))
Response.Write (cotename{ I }=' RS ( cotename ); Chr (10))
移到下一项
i = i + 1
环
其他的
响应。写(我{ 0 } = 0;byid { 0 } = 0;cotename { 0 } =没有分类;)
最后如果
关闭
设置RS = 0 % >
如果(价值= = null | |价值= =不= = | |价值){价值= 0;}
/ /如果(lmvalue = = null | | lmvalue = =定义的| | lmvalue = =){ lmvalue = 0;}
为(k = 0;K<id.length;K+){
如果(价值= =我{ k }){ id_s + =价值+| ;cotename_s + = cotename {K } + | ;thevalue_r = byid {K };break;} { 0 }其他thevalue_r =;
}
为(i = 0;i < id.length;i++){
如果(价值= = byid {我}){
id_s + =我{我} +cotename_s + = cotename {我} +| | ;
}
}
如果(id_s = =1 |){
为(i = 0;i < id.length;i++){
如果(价值= =我{我}){
id_s + =我{我} +cotename_s + = cotename {我} +| | ;
}
}
}
id_v = id_s.split(| );
cotename_v = cotename_s.split(| );
VaR的长度= id_v.length-1;
对于(j = 0;j <长度;j + +){
如果(价值= = id_v {,}){
数据+ = + cotename_v { } + J ;}
别的{
数据+ = + cotename_v { } + {J}.;
}
}
如果(价值!= 0){数据高级分类;}
/ /警报(长+/+价值);
VaR LM = document.getelementbyid('lmid);
LM .innerHTML =数据+ ;
}
调用网页代码
复制代码代码如下所示:
<
昏暗的LM
请求()
如果LM =不empyt ISNUMERIC(LM)然后LM = 0
%>
>)
跑步后的结果
{备注:对于外部JS的引入,需要执行刷新}
笪塔巴涩:
递归
复制代码代码如下所示:
子有(自己的)
集= server.createobject(ADODB。记录集)
模糊RS
SQL = 选择*从{ db_cote },ByID(身份)
rs.open sql,Conn,1,1
我= 0
if not rs.eof then
do while not rs.eof
响应。写(RS(cotename ))
打电话找(Rs(ID))
移到下一项
i = i + 1
环
最后如果
关闭
设置=无
端子
如果m =空,则m=0
打电话找(M)
%>