说明:
所先把所有分类读取存放到js数组中(如果数据量大可能就有点麻烦)
当选择时候返回父分类id 在从数组中找出符合的分类,然后显示给用户
数据库设计(可以根据自己需求添加字段,如此分类属于什么分类等等)
字段 类型 说明
id 自动编号 记录编号
cotename 文本 分类名称
byid 数字 父分类id(即为此表id,根接点时值为0)
js部分代码(命名为*.asp)
复制代码 代码如下:
<%dim conn
set conn=server.createobject("adodb.connection")
conn.connectionstring = "provider=microsoft.jet.oledb.4.0;" & _
"data source=" & server.mappath("cote.mdb")
conn.open
%>
function checklm(thevalue){
var byid=new array();
var cotename=new array();
var id=new array();
var i;
var id_s;
var byid_s;
var cotename_s;
var thevalue_r;
var data='<select name="lm" onchange="checklm(this.value)">'
id_s="|";
cotename_s='-选择-|';
<%set rs=server.createobject("adodb.recordset")
sql="select * from [db_cote] order by byid,id"
rs.open sql,conn,1,1
i=0
if not rs.eof then
do while not rs.eof
response.write("id["&i&"]="&rs("id")&";"&chr(10))
response.write("byid["&i&"]="&rs("byid")&";"&chr(10))
response.write("cotename["&i&"]='"&rs("cotename")&"';"&chr(10))
rs.movenext
i=i+1
loop
else
response.write("id[0]=0;byid[0]=0;cotename[0]='无分类';")
end if
rs.close
set rs=nothing%>
if(thevalue==null||thevalue==undefined||thevalue==''){thevalue=0;}
//if(lmvalue==null||lmvalue==undefined||lmvalue==''){lmvalue=0;}
for(k=0;k<id.length;k++){
if(thevalue==id[k]){id_s+=thevalue+"|";cotename_s+=cotename[k]+"|";thevalue_r=byid[k];break;}else{thevalue_r=0;}
}
for(i=0;i<id.length;i++){
if(thevalue==byid[i]){
id_s+=id[i]+"|";cotename_s+=cotename[i]+"|";
}
}
if(id_s=='-1|'){
for(i=0;i<id.length;i++){
if(thevalue==id[i]){
id_s+=id[i]+"|";cotename_s+=cotename[i]+"|";
}
}
}
id_v=id_s.split("|");
cotename_v=cotename_s.split("|");
var length=id_v.length-1;
for(j=0;j<length;j++){
if(thevalue==id_v[j]){
data+="<option value='"+id_v[j]+"' selected>"+cotename_v[j]+"</option>";}
else{
data+="<option value='"+id_v[j]+"'>"+cotename_v[j]+"</option>";
}
}
if(thevalue!=0){data+="<option value='"+thevalue_r+"'>上级分类</option>";}
//alert(length+'/'+thevalue);
var lm=document.getelementbyid('lmid');
lm.innerhtml=data+"</select>";
}
<%conn.close:set conn=nothing%>
调用页面代码
复制代码 代码如下:
<%
dim lm
lm=request("lm")
if lm=empyt or not isnumeric(lm) then lm=0
%>
<html>
<script type="text/javascript" src="*.asp"></script>
<body onload="checklm(<%=lm%>)">
<div id="lmid"></div>
</body>
</html>
运行后结果
function checklm(thevalue){
var byid=new array();
var cotename=new array();
var id=new array();
var i;
var id_s;
var byid_s;
var cotename_s;
var thevalue_r;
var data=''
id_s="|";
cotename_s='-选择-|';
id[0]=1;
byid[0]=0;
cotename[0]='大栏目1';
id[1]=7;
byid[1]=0;
cotename[1]='大栏目2';
id[2]=2;
byid[2]=1;
cotename[2]='├大栏目1-1';
id[3]=3;
byid[3]=1;
cotename[3]='├大栏目1-2';
id[4]=4;
byid[4]=1;
cotename[4]='├大栏目1-3';
id[5]=5;
byid[5]=4;
cotename[5]='├-大栏目1-3-a';
id[6]=6;
byid[6]=4;
cotename[6]='├-大栏目1-3-b';
id[7]=10;
byid[7]=6;
cotename[7]='├--大栏目1-3-b-1';
id[8]=11;
byid[8]=6;
cotename[8]='├--大栏目1-3-b-2';
id[9]=12;
byid[9]=6;
cotename[9]='├--大栏目1-3-b-3';
id[10]=8;
byid[10]=7;
cotename[10]='├大栏目2-1';
id[11]=9;
byid[11]=7;
cotename[11]='├大栏目2-2';
if(thevalue==null||thevalue==undefined||thevalue==''){thevalue=0;}
//if(lmvalue==null||lmvalue==undefined||lmvalue==''){lmvalue=0;}
for(k=0;k
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!
相关教程推荐
- 字符批量替换程序asp服务器版
- 实例分析之用ASP编程实现网络内容快速查找的代码
- 将首页转成静态html页的asp文件
- 将ACCESS转化成SQL2000要注意的问题
- ASP生成动态flash的工具与介绍
- ASP中取得图片宽度和高度的类(无组件)
- ASP实现头像图像随机变换
- PJblog友情链接LOGO地址失效的解决
- TSYS中生成静态页时溢出: 'CInt'
- ASP高级技巧精选集
- ASP FSO文件处理函数大全
- asp无限分级(递归调用)
- 多域名一网站时如果返回最原来的域名
- 关于网站文件自动备份程序的一点思考
- 一个非常简单的将半角转换为中文的函数
- 给blog加上运行代码功能
- UTF-8编码第1/2页
- 由给定的字符串生成关键字
- 如何在 Access 2003 和 Access 2002 中创建 DSN 的连接到 SQLServer 对链接表
- jb51生成所有页面的效果+分页生成 原创
其他课程推荐
- Fedora八下的MySQL源码安装手记
- MySQLCluster7.2在线增加数据节点存在重大弊病
- MySQL数据库中备份/恢复的两方法介绍
- AE调色插件MagicBulletSuite11(附序列号)
- Mysql中大小写敏感问题导致的MySqlError1146Tabeldoen’tex
- MysqlSQL服务器模式介绍
- Redis响应时间监控
- MySQL错误ERROR2002(HY000):Can'tconnecttolocalMySQLse
- [Oracle]常用工具集之SQL*Loader的用法
- [RubyonRails]RedisLogger–abetterredislog
- Centos5.5中安装Mysql5.5过程分享
- [转]mysql性能优化议案
- SQL语句获取日期
- oracle触发器如何使用
- MySQL数据库在指定位置增加字段
- SqlServer数据库日期格式化函数
- 重装MySQL最后一步失败的完美解决办法
- 从mdf文件恢复sqlserver数据库
- 慎用mysql的join语句和in子查询语句,普通查询可能是最好的优化
- 成为好程序员必须避免的5个坏习惯