在构建网站时,实现栏目高亮显示是一项常见的需求。以下将详细介绍如何通过灵动标签从数据库中提取栏目名称,并结合JavaScript代码实现当前页面栏目的高亮效果。
首先,我们需要使用灵动标签来从数据库中取出对应的栏目名称。以下是两种常见场景的实现方法:
一、如果需要取出所有最顶级的栏目名称,可以设置bclassid=0。这里的 id="cid=$bqr[classid]?>" 是用来获取当前页面的ID值。
[e:loop={'select classid,classname,classpath from [!db.pre!]enewsclass where bclassid=0 and showclass=0 order by myorder',0,24,0}]
>
=$bqr[classname]?>
[/e:loop]
二、若要取出固定的子栏目,可以设置bclassid=59(这个值是你的父栏目的ID)。其中 id="cid=$bqr[classid]?>" 用于动态获取当前页面的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}]
=$bqr[classname]?>
[/e:loop]
接下来,在上述代码之后加载JS脚本。这段脚本的作用是为当前选中的栏目添加高亮样式。其中,cur2 是定义好的高亮样式类名。
变量说明:
[!--self.classid--] 表示当前栏目的ID数值。
=$bqr[classid]?> 表示栏目的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}]
- >
=$bqr[classname]?>
[/e:loop]
通过以上步骤,您可以轻松实现栏目导航的高亮显示功能,提升用户体验的同时也增强了网站的专业感。