關(guān)于無(wú)限分級(jí)(ASP+數(shù)據(jù)庫(kù)+JS)的實(shí)現(xiàn)代碼
說(shuō)明:
所先把所有分類(lèi)讀取存放到JS數(shù)組中(如果數(shù)據(jù)量大可能就有點(diǎn)麻煩)
當(dāng)選擇時(shí)候返回父分類(lèi)ID 在從數(shù)組中找出符合的分類(lèi),然后顯示給用戶(hù)
數(shù)據(jù)庫(kù)設(shè)計(jì)(可以根據(jù)自己需求添加字段,如此分類(lèi)屬于什么分類(lèi)等等)
字段 類(lèi)型 說(shuō)明
id 自動(dòng)編號(hào) 記錄編號(hào)
cotename 文本 分類(lèi)名稱(chēng)
byid 數(shù)字 父分類(lèi)ID(即為此表ID,根接點(diǎn)時(shí)值為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]='無(wú)分類(lèi)';")
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+"'>上級(jí)分類(lèi)</option>";}
//alert(length+'/'+thevalue);
var lm=document.getElementById('lmid');
lm.innerHTML=data+"</select>";
}
<%Conn.Close:Set Conn=Nothing%>
調(diào)用頁(yè)面代碼
<%
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>
運(yùn)行后結(jié)果
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
數(shù)據(jù)庫(kù):
遞歸
Sub GetA(TheID)
set rs=server.CreateObject("adodb.recordset")
dim rs,sql
sql="select * from [DB_Cote] Where ByID in("&TheID&")"
rs.open sql,conn,1,1
i=0
if not rs.eof then
do while not rs.eof
response.Write(rs("cotename")&"<br>")
call GetA(Rs("id"))
rs.movenext
i=i+1
loop
end if
rs.close
set rs=nothing
End Sub
if m=empty then m=0
call GetA(m)
%>
- 基于BootStrap Metronic開(kāi)發(fā)框架經(jīng)驗(yàn)小結(jié)【二】列表分頁(yè)處理和插件JSTree的使用
- jsTree 基于JQuery的排序節(jié)點(diǎn) Bug
- jquery下jstree簡(jiǎn)單應(yīng)用 - v1.0
- jquery.jstree 增加節(jié)點(diǎn)的雙擊事件代碼
- 基于jsTree的無(wú)限級(jí)樹(shù)JSON數(shù)據(jù)的轉(zhuǎn)換代碼
- JQery jstree 大數(shù)據(jù)量問(wèn)題解決方法
- jsTree樹(shù)控件(基于jQuery, 超強(qiáng)悍)[推薦]
- js實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形導(dǎo)航列表效果代碼
- json+jQuery實(shí)現(xiàn)的無(wú)限級(jí)樹(shù)形菜單效果代碼
- javascript實(shí)現(xiàn)無(wú)限級(jí)select聯(lián)動(dòng)菜單
- 基于jquery的無(wú)限級(jí)聯(lián)下拉框js插件
- js無(wú)限級(jí)折疊菜單精簡(jiǎn)版
- php 無(wú)限級(jí)數(shù)據(jù)JSON格式及JS解析
- PHP+JS無(wú)限級(jí)可伸縮菜單詳解(簡(jiǎn)單易懂)
- jstree創(chuàng)建無(wú)限分級(jí)樹(shù)的方法【基于ajax動(dòng)態(tài)創(chuàng)建子節(jié)點(diǎn)】
相關(guān)文章
實(shí)現(xiàn)對(duì)Access數(shù)據(jù)庫(kù)表重命名的一段代碼
實(shí)現(xiàn)對(duì)Access數(shù)據(jù)庫(kù)表重命名的一段代碼...2006-07-07ASP UTF-8頁(yè)面亂碼+GB2312轉(zhuǎn)UTF-8 +生成UTF-8格式的文件(編碼)
ASP動(dòng)態(tài)網(wǎng)頁(yè)下UTF-8頁(yè)面亂碼+GB2312轉(zhuǎn)UTF-8 +生成UTF-8格式的文件(編碼)2008-10-10asp下實(shí)現(xiàn)字符串的補(bǔ)充fill()
在一個(gè)字符串前后補(bǔ)全另一字符串,在一個(gè)字符串前面補(bǔ)全另一字符串,在一個(gè)字符串后面補(bǔ)全另一字符串2008-02-02asp下實(shí)現(xiàn)對(duì)HTML代碼進(jìn)行轉(zhuǎn)換的函數(shù)
asp下實(shí)現(xiàn)對(duì)HTML代碼進(jìn)行轉(zhuǎn)換的函數(shù)...2007-08-08AJAX簡(jiǎn)單應(yīng)用實(shí)例-彈出層
AJAX的簡(jiǎn)單應(yīng)用,包括js彈出DIV層、層拖動(dòng)、ajax后臺(tái)讀取數(shù)據(jù)!注意getinfo.asp文件是以u(píng)tf-8格式保存的,在getinfo.asp里面可以寫(xiě)讀數(shù)據(jù)庫(kù)代碼!2008-08-08ASP+JS三級(jí)聯(lián)動(dòng)下拉菜單[調(diào)用數(shù)據(jù)庫(kù)數(shù)據(jù)]
ASP+JS三級(jí)聯(lián)動(dòng)下拉菜單[調(diào)用數(shù)據(jù)庫(kù)數(shù)據(jù)]...2007-03-03