先引用下别人的例子, 他想达到的效果是树形目录的方式显示三级栏目列表的需求, 参考http://fengyouyi.com/158 效果可以参考下DEMO: http://fengyouyi.com/demo/20110609001/
我测试了下发现只能给定某个上级栏目的ID, 而且只显示这个上级栏目ID下面的次级栏目及无限级栏目, 并不能显示上级栏目本身 所以参考他的思路自己又重新写了个函数,代码如下:
//循环次级栏目函数 function user_ListCats($bclassid) { global $empire, $dbtbpre; // classpath 为地址 $sql=$empire->query("select classid, classname, bclassid, islast, classpath, classurl from {$dbtbpre}enewsclass where bclassid='$bclassid' and wburl='' order by myorder,classid"); // 判断是否有类别记录 $num=$empire->num1($sql); if ($num == 0 && $bclassid == 0)//无记录 { echo $GLOBALS['notrecordword']; return ""; } if ($num == 0) { return ''; } echo '<ul>'."\r\n"; $i = 1; while ($r=$empire->fetch($sql)) { // 如果不是终极栏目,显示其子目录 if(empty($r[islast])) { echo '<li><a href="' . $r[classpath] . '">' . $r[classname] . '</a>'."\r\n"; user_ListCats($r[classid], $showMore); echo '</li>'."\r\n"; } else { echo '<li><a href="' . $r[classpath] . '">' . $r[classname] . '</a></li>'."\r\n"; } $i += 1; } echo '</ul>'."\r\n"; } //顶部栏目导航函数 function user_NavigationMenu(){ global $empire, $dbtbpre; $sql=$empire->query("select classid, classname, bclassid, islast, classpath, classurl from {$dbtbpre}enewsclass where wburl='' order by myorder,classid"); while($root=$empire->fetch($sql)) { if($root[bclassid] == 0){ echo '<li><a href="' . $root[classpath] . '">' . $root[classname] . '</a>'."\r\n"; user_ListCats($root[classid]); echo '</li>'."\r\n"; } } } 至于HTML的样式部分,我都写到CSS里面了,所以这个大伙就自个发挥了... 望大虾多多指点!!!
上传以下图片:
|