代碼可以優化,請根據自己需求進行優化
說明:
所先把所有分類讀取存放到JS數組中(如果數據量大可能就有點麻煩)
當選擇時候返回父分類ID在從數組中找出符合的分類,然後顯示給用戶
數據庫設計(可以根據自己需求添加字段,如此分類屬於什麼分類等等)
字段類型說明
id自動編號記錄編號
cotename文本分類名稱
byid數字父分類ID(即為此表ID,根接點時值為0)
JS部分代碼(命名為*.asp)
複製代碼代碼如下:
<%Dimconn
Setconn=Server.CreateObject("ADODB.Connection")
conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&_
"DataSource="&Server.MapPath("Cote.mdb")
conn.Open
%>
functionCheckLm(thevalue){
varbyid=newArray();
varcotename=newArray();
varid=newArray();
vari;
varid_s;
varbyid_s;
varcotename_s;
varthevalue_r;
vardata='<selectname="lm"onchange="CheckLm(this.value)">'
id_s="|";
cotename_s='-選擇-|';
<%setrs=server.CreateObject("adodb.recordset")
sql="select*from[DB_Cote]Orderbybyid,id"
rs.opensql,conn,1,1
i=0
ifnotrs.eofthen
dowhilenotrs.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]='無分類';")
endif
rs.close
setrs=nothing%>
if(thevalue==null||thevalue==undefined||thevalue==''){thevalue=0;}
//if(lmvalue==null||lmvalue==undefined||lmvalue==''){lmvalue=0;}
for(k=0;k<id.length;k++){