加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP示例教程:asp无限级显示分类代码

发布时间:2023-07-17 14:22:04 所属栏目:Asp教程 来源:
导读:为了方便使用分类,我定义了一个分类表category,里面字段是
  
  id(自动编号) cat_name(分类名) parent_id(父ID,对应本表ID) cat_order(顺序) is_show(是否显示) u_id(这个用来区别是新闻分类,还是产品分
为了方便使用分类,我定义了一个分类表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显示与隐藏
  
  '参数: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&""" 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里面去了。  
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章