<Script type="text/javascript">
<!--
function showhidden(sid)
{
whichEl = eval("div" + sid);
if (whichEl.style.display == "none")
{
eval("div" + sid + ".style.display=\"\";");
}
else
{
eval("div" + sid + ".style.display=\"none\";");
}
}
</script><%
set rs1=cc.execute("select distinct c802800001 from "&table_item&"")
while not rs1.eof
sprndid1=makerndnum(10)  '为<tr>取随机数,然后将该随机ID给其子类
response.write("<tr style='cursor:hand'><td><a href=""#"" onclick=""showhidden("&sprndid1&")"">"&spname&"&nbsp;&nbsp;"&sprndid1&"</a></td></tr>")

'显示下一级分类
response.write("<tr id=""div"&sprndid1&""" style=""display:none""><td>")   '随机数给了子分类的<TR>,就是父分类控制显示子分类
response.write("<table width=""200"" border=""0"" cellspacing=""1"" cellpadding=""2"" bgcolor=#cccccc>")   '处理二级分类
set rs2=cc.execute("select distinct c802800002 from "&table_item&" where c802800001='"&rs1("c802800001")&"'")
while not rs2.eof
response.write("<tr><td>"&rs2("c802800002")&"</td></tr>")
rs2.movenext
wend
         rs2.close
set rs2=nothing
'二级分类处理结束
response.write("</table>")
response.write("</td></tr>")
'显示下一级分类结束
rs1.movenext
wend
rs1.close
set rs1=nothing
%>以上是主要代码,谢谢

解决方案 »

  1.   

    根据你的描述
    似乎应该首先分清楚从属关系啦
    c802800002字段应该记录的就是该分类的父类了我想你的程序的关键问题是没有办法找到所有的层和需要操作的层如果你有一个数据结构记录着分类的从属关系
    这个问题就好解决了你所说的分类号xxx是随机生成的数字
    并不是多大的问题
    因为并不是用分类号作为数组索引的,呵呵可以这样啊在服务端生成一个类似这样的代码var aryDiv=[[123,父分类789],[789,-1],[654,父分类123],[890,父分类789]];在切换效果的时候
    查找这个二维数组
    查找aryDiv[i][0]!=自己的id中的所有分类中aryDiv[i][0]=自己的id的节点的所有[i][0]这样表示吧
    我最近逻辑有些混乱function showHidden(sid){
        var cnt = aryDiv.length
        for(var i=0;i<cnt;i++)
        {
            if(aryDiv[i][0]==sid) show(aryDiv[i][0]);
            else
                if(aryDiv[i][1]==sid) //指定分类的子分类
                    show(aryDiv[i][0]);
                else
                    hidden(aryDiv[i][0]);    }}你看这样可以吗?