ASP无限级分类函数

很久之前写的一个ASP无限级分类函数,今晚闲了无事,以此为基础写了一个php无限级分类函数版本的,一起分享给大家。

  '作者:苗启源(Miaoqiyuan.cn)
  '函数:getCatagory
  '功能:获得分类列表
  '参数:cat_arr     -> 分类数组(Rscordset:id:分类编号,pid:上级分类,classname:分类名称,childs:子分类)
  '       按此顺出些sql语句,用getRows获取得到的数据
  '      cat_pid     -> 上级分类编号
  '      cat_childs  -> 下级分类编号
  '      cat_select  -> 选择的分类
  '      cat_dir     -> 分类级别
  '返回:返回分类列表(Option)
  function getCatagory(byval cat_arr,byval cat_pid,byval cat_childs,byval cat_select,byval cat_dir,byval format)
    dim i,tmp
    if cat_pid=0 and format="option" then
      %><option value="0">根目录</option><%
    end if
    if isArray(cat_arr) then
      for i=0 to ubound(cat_arr,2)
        if cat_arr(1,i) = cat_pid and instr("," & cat_childs & ",","," & cat_arr(0,i) & ",") = 0 then
          if format = "option" then
            %><option value="<%=cat_arr(0,i)%>" <%if cat_arr(0,i) = cat_select then response.write "selected"%>><%=cat_dir%>┣<%=cat_arr(2,i)%></option><%
          else
            '<li>{$cat.dir}┣<a href="?act=edt&id={$cat.id}&type=product">{$cat.name}</a></li>
            tmp = format
            if instr(tmp,"{$cat.dir}")>0 then tmp = replace(tmp,"{$cat.dir}",cat_dir)
            if instr(tmp,"{$cat.id}")>0 then tmp = replace(tmp,"{$cat.id}",cat_arr(0,i))
            if instr(tmp,"{$cat.pid}")>0 then tmp = replace(tmp,"{$cat.pid}",cat_arr(1,i))
            if instr(tmp,"{$cat.name}")>0 then tmp = replace(tmp,"{$cat.name}",cat_arr(2,i))
            if instr(tmp,"{$cat.childs}")>0 then tmp = replace(tmp,"{$cat.childs}",cat_arr(3,i))
            response.write tmp
          end if
          call getCatagory(cat_arr,cat_arr(0,i),cat_childs,cat_select,cat_dir & "┃",format)
        end if
      next
    end if
  end function

ASP无限级分类函数》上有1条评论

  1. Pingback引用通告: PHP无限级分类函数 - 苗启源的部落格

发表评论

电子邮件地址不会被公开。 必填项已用*标注