關于無限分級(ASP+數據庫+JS)的實現代碼
2024-05-04 11:01:32
供稿:網友
代碼可以優化,請根據自己需求進行優化
說明:
所先把所有分類讀取存放到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++){