分类表格设置字段: ID, name ,parID ;ID为关键字自动增加 ,name是分类名称,parID是记录这个分类名称的父类ID设置默认值为0,为0表示为顶级.
用2个记录集循环出对应的记录
效果地址
http://kartty.com/ProdType.asp
别改动啊.....
前台
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
On Error Resume Next
response.Charset="utf-8"
dim conn,sql,rs,pormpt
set conn = server.CreateObject("ADODB.Connection")
conn.open (application("conn"))
sql="select id,name,parid from class ORDER BY name asc"
set rs=conn.execute(sql)
do while not rs.eof
if jsarr<>"" then
jsarr= jsarr&",new Array('"&rs("id")&"','"&rs("name")&"','"&rs("parid")&"')"
else
jsarr="new Array('"&rs("id")&"','"&rs("name")&"','"&rs("parid")&"')"
end if
rs.MoveNext
loop
prompt=request.Cookies("prompt")
response.Cookies("prompt")=""
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
数据库设计的时候不好,所以影响了你现在的编程。最好是改下数据库:加入level,或者一type这样的字段,用来表示所属于哪个菜单级。
如果已经不能改了,按现在的结构也可以,就是需要判断一下:
一级:select * from 表 where len(menu)=6
二级:select * from 表 where left(menu,6)="一级的值" and len(menu)>6
当然,其他方法也很多的,这里只是写一个简单的示例。
我个人建议最好还是改下数据结构更好
代码写出来就太长了,可以给个思路你。先读取一级数据加载在一级下拉列表,然后根据在下拉列表select的onchange()事件里判断所选取的值再加载二级数据,简单点用表单提交的方法可实现,也可用ajax实现无刷新实时加载