asp無限級分類加js收縮伸展功能代碼

來源:互聯網
上載者:User

為了方便使用分類,我定義了一個分類表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裡面去了。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.