您好,欢迎来到点滴吧! 手机版
点滴吧www.diandiba.com
记录点点滴滴,尽在点滴吧
  • 文章
  • 文章
  • 特效
  • 素材
  • 景点
您现在的位置:首页 > ASP教程 > 文章正文
asp无限级分类加js收缩伸展功能代码
更新时间:2015/1/6 0:16:17   点击:2085次

为了方便使用分类,我定义了一个分类表category,里面字段是

id(自动编号)  cat_name(分类名) parent_id(父ID,对应本表ID) cat_order(顺序) is_show(是否显示)  u_id(这个用来区别是新闻分类,还是产品分类,还是其他分类),为了方便,我将这些分类全部放在这张表中。


在给客户添加分类的时候,结果有太多的分类,本来前台显示的时候,将它们全部显示出来了,好长。客户提出修改意见,要求将它们改成点击大分类,才可以将其子分类显示出来,并且每个分类下面还有一条虚线,并且大分类前面有个图片加号,展开后要变成减号。


<script>

function fd(id,num)

{

 t=$("c"+id+"_1").style.display;

 

 if(t=="none")

 {

   t1="block";

   t2="images/fll_34.gif";

 }

 else 

 {

  t1="none"; 

  t2="images/fll_34.gif";

 }

 for(i=1;i<=num;i++)

 {

  $("c"+id+"_"+i).style.display=t1;

  $("d_"+id).src=t2;  

 }

}

function $(id)

{

 return document.getElementById(id);

}

</script>

这是asp无限级显示分类代码,并给这些分类加上id


<%

'功能:asp无限级显示分类+js显示与隐藏

'作者:wangsdong

'开发:www.aspprogram.cn

'参数:parent_id为父ID,stype为新闻,产品,文章大分类

'原创文章,转载请保留些信息,谢谢

function cat111(parent_id,stype)

set rs1 =server.createobject("adodb.recordset")

sql="select cat_name,cat_id,parent_id from category where parent_id="&parent_id&" and u_id="&stype&" and is_show=1 order by cat_order asc"

set rs1=conn.execute(sql)

If rs1.eof Then

Else 

if(depath>2) then

 display2="none"     

else

 display2="block" 

end if  

dim j

j=1

do while not rs1.eof 

 cat_name1 = rs1("cat_name")

 cat_id1 = rs1("cat_id")  

 parent_id1=rs1("parent_id") 

 '******************下面是你要显示的******************' 

 m9=0

 sql2="select count(cat_id) as t from category where parent_id="&cat_id1&" and u_id="&stype&""    

 set rs2=server.createobject("adodb.recordset")

 set rs2=conn.execute(sql2) 

 if not rs2.eof then

    m9=rs2("t")

 else

  m9=0  

 end if 

 rs2.close

  

 if(depath<=2) then  

  mgif="images/-.gif"

  a="block"

 else

  if(m9>0) then 

  mgif="images/+.gif" 

  else

  mgif="images/-.gif"

  end if

  if(depath=4) then

   a="block"

  else  

   a="none"

  end if

 end if  

 

 

 catstr=catstr & "<tr id=""c"&parent_id&"_"&j&""" style=""display:"&a&"""><td width=""25"" align=""center"" valign=""middle"" class=""dotted_class""><img src="""&mgif&""" width=""12"" height=""11"" id=""d_"&cat_id1&"""></td><td class=""dotted_class leftcatcss"">"

 if(m9>0) then

  catstr=catstr&"<a href=""javascript:void(0);"" _fcksavedurl="""javascript:void(0);""" _fcksavedurl="""javascript:void(0);""" onclick=""fd("&cat_id1&","&m9&")"">" &vbnewline

 else

  catstr=catstr&"<a href=""products.asp?id="&cat_id1&""" target=""_blank"">"&vbnewline

 end if

 for i=1 to depath

   catstr=catstr&" "

 Next

 catstr=catstr&cat_name1&"</a></td></tr>"&vbnewline

 m9=0

     

 sql2="select cat_name,cat_id from category where parent_id="&parent_id1&" and u_id="&stype&" order by cat_order asc"    

 set rs2=server.createobject("adodb.recordset")

 set rs2=conn.execute(sql2)

 if not rs2.eof then

    depath=depath+4  

    call cat111(cat_id1,stype)

 end if

 rs2.close 

 set rs2=nothing 

 depath=depath-4 

 '******************上面是你要显示的******************'

 j=j+1

rs1.movenext

loop

End If

rs1.close

set rs1=nothing

end Function

%>


在使用这个函数之前加上

catstr=""

然后再call,下面的虚线加在css中的dotted_class里面,这样就搞定了。

注意:这里得到的是一个表格的行,要和其他行放在一起,不要加到td里面去了。

相关文章
导航分类
热门文章
关于我们| 联系我们| 免责声明| 网站地图|
CopyRight 2012-2015 www.diandiba.com - 点滴吧 All Rights Reserved
滇ICP备09005765号-2