asp无限分类的问题。高手请指点

2025-03-26 01:27:13
推荐回答(3个)
回答1:

无限级分类的主要内容:
建一个栏目表,如
栏目ID,栏目名称,父栏目ID,父栏目名称,栏目深度,栏目管理员

用递归可以得出每一级栏目的名称及其父栏目名称。代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%'if session("login") <> "yes" then response.Redirect "login.asp"%>

<%
sub popup(str,url)
response.write "" & Chr(13)
response.End()
end sub
%>




栏目管理



<%
'递归调用函数,生成一个类别代码
sub reclass(id)
set rs=server.createobject("adodb.recordset")
sql="select * from lan where fu_id="&id
rs.open sql,conn,1,1
while not rs.eof
lan_id0 = rs("lan_id")
lan_name0 = rs("lan_name")
fu_name0 = rs("fu_name")
fu_id0 = rs("fu_id")
level0 = rs("lan_level")
brstr = ""
for j=1 to level0
brstr="  "&brstr
next
'if user_right(session("user_name"),lan_id0)="yes" or session("level")="管理员" then
%>

<%=lan_id0%>
<%=brstr%>└<%=lan_name0%>
<%=fu_name0%>
修改 <%'if session("level")="管理员" then%>增加子栏目 删除<%'end if%>

<%
'end if
call reclass(lan_id0)
rs.movenext
wend
rs.close
set rs=nothing
end sub
%>













    栏目管理 首页







 








<% If request("act") = "" Then %>
<%If request("lan_id")="" Then%>








栏目名称:



<%end if
If request("lan_id")<>"" then
%>

&fu_name=<%=request("lan_name")%>" onsubmit="return CheckForm()">






栏目名称: 】中添加子栏目">



<%end if%>
<%
set rs1=server.createobject("adodb.recordset")
sql1="select * from lan where fu_id=0 order by lan_id"
rs1.open sql1,conn,1,1
if rs1.eof or rs1.bof then
%>




没有栏目

<%else%>







<%
while not rs1.eof
lan_id1 = rs1("lan_id")
lan_name1 = rs1("lan_name")
fu_name1 = rs1("fu_name")
fu_id1 = rs1("fu_id")
'if user_right(session("user_name"),lan_id1)="yes" or session("level")="管理员" then
%>






<%
'end if
call reclass(lan_id1)
rs1.movenext
wend
end if
rs1.close
set rs1=nothing
%>
栏目ID 栏目名称 父栏目名称 操作
<%=lan_id1%> <%=lan_name1%> 修改 <%'if session("level")="管理员" then%>增加子栏目 删除<%'end if%>

<% End If %>


<% If request("act") = "modify" Then %>

<% End If %>


<% If request("act") = "modify_save" Then %>

<% End If %>


<% If request("act") = "del" Then %>

<% End If %>


<% If request("act") = "del_ok" Then %>

<% End If %>


<% If request("act") = "add" Then %>
<%
if request("fu_name")="无" then
set rs = server.CreateObject("adodb.recordset")
sql = "select * from lan where lan_name='"&request("lan_name")&"'"
rs.open sql,conn,3,3
if not rs.eof then
call popup("已存在相同栏目名称,请更换",Request.ServerVariables("HTTP_REFERER"))
else
rs.addnew
rs("lan_name") = request("lan_name")
rs("fu_name") = "无"
rs("fu_id") = 0
rs("lan_level") = 0
rs.update

call popup("栏目添加成功!","lanmu_admin.asp")
end if
rs.close
set rs = nothing
else
set rs = server.CreateObject("adodb.recordset")
sql = "select * from lan where lan_name='"&request("lan_name")&"' and fu_name='"&request("fu_name")&"'"
rs.open sql,conn,3,3
if not rs.eof then
call popup("已存在相同栏目名称,请更换",Request.ServerVariables("HTTP_REFERER"))
else
set rsa = server.createobject("adodb.recordset")
sqla = "select * from lan where lan_id = "&request("fu_id")&" and lan_name = '"&request("fu_name")&"'"
rsa.open sqla,conn,1,1
rsa_level = rsa("lan_level")
rsa.close
set rsa = nothing

rs.addnew
rs("lan_name") = request("lan_name")
rs("fu_name") = request("fu_name")
rs("fu_id") = request("fu_id")
rs("lan_level") = rsa_level+1
rs.update

call popup("栏目添加成功!","lanmu_admin.asp")
end if
rs.close
set rs = nothing
end if
%>
<% End If %>






 



<%
conn.close
set conn = nothing
%>

回答2:

用一个字段保存父级分类
使用的时候按级递归

回答3:

可以去源码之家 看看,不过还是建议你学习点基础要不看不懂