在构建网站时,实现栏目高亮显示是一项常见的需求。以下将详细介绍如何通过灵动标签从数据库中提取栏目名称,并结合JavaScript代码实现当前页面栏目的高亮效果。

首先,我们需要使用灵动标签来从数据库中取出对应的栏目名称。以下是两种常见场景的实现方法:

一、如果需要取出所有最顶级的栏目名称,可以设置bclassid=0。这里的 id="cid" 是用来获取当前页面的ID值。


[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
  • >
  • [/e:loop]

    二、若要取出固定的子栏目,可以设置bclassid=59(这个值是你的父栏目的ID)。其中 id="cid" 用于动态获取当前页面的ID值,生成如 cid28、cid29 等等。

    
    [e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=59 and showclass=0 order by myorder',0,24,0}]
    
  • [/e:loop]

    接下来,在上述代码之后加载JS脚本。这段脚本的作用是为当前选中的栏目添加高亮样式。其中,cur2 是定义好的高亮样式类名。

    
    
    

    变量说明:
            [!--self.classid--] 表示当前栏目的ID数值。
            表示栏目的ID。

    其他参考方法:可以在 userfun.php 文件中加入以下函数代码:

    
    function currentPage($classid,$thisid){
        global $class_r;
        $fr=explode('|',$class_r[$classid][featherclass]);
        $topbclassid=$fr[1]?$fr[1]:$classid;//取得第一级栏目id
        if ($topbclassid==$thisid) {
            echo "class='menuon'";
        } else {}
    }
    
    function OnePage($classid,$thisid){
        global $class_r;
        $fr=explode('|',$class_r[$bclassid][featherclass]);
        $topbclassid=$fr[1]?$fr[1]:$classid;//取得子栏目id
        if ($topbclassid==$thisid) {
            echo "bmenuon";
        } else {}
    }
    

    最后,结合以上方法,完整的HTML结构如下:

    
    
      [e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
    • >
    • [/e:loop]

    通过以上步骤,您可以轻松实现栏目导航的高亮显示功能,提升用户体验的同时也增强了网站的专业感。