闲来无事,记记笔记
二级导航的实现,就是一个二级联动,嗯
先来看看数据库,我喜欢用一个表,表多了就不好玩了
二级代号取一级导航的代号就行了,做个简单的栗子;
代码部分:
看控制器,大头在这:
<?php namespace Otcmscontroller; use Thinkcontroller; use OtcmscontrollerWxhController; use Thinkindex; class WxhController extends Controller { public function index() { $cha = M('article'); $chaa = $cha->where("a_keyword = 274")->select(); foreach($chaa as &$v) { $aid = $v['a_id']; $aa = $cha->where("laiyuan = $aid")->select(); //判断是否有二级菜单 if(empty($aa)) { $v['shao']=""; } else{ $v['shao']= $aa; } //dump($aa); } $this->assign('chaa',$chaa); $this->display('Wxh:public/25-1index'); } }
嗯 第一个sql是一级导航的 第二个就是查的二级导航,
看前端代码:
<nav class="nav"> <ul class="ul1"> <foreach name="chaa" item="ab"> <li class="li1"> <a href="about.html">{$ab.a_title}</a> <if condition=" $ab['shao'] neq '' "> <ul> <foreach name="ab[ 'shao'] " item="v "> <li> <a href="about.html ">{$v.a_title}</a> </li> </foreach> </ul> <else /> </if> </li> </foreach> </ul> </nav>
这里的 <if condition=" $ab['shao'] neq '' ">是判断是否为空
高亮显示:
var pathArray = location.pathname;
$aa=$("a[href='"+pathArray+"']").$dd.addClass("current");
这两句代码可以搞定大多数导航高亮,
遇到特殊的需要使用:可以取到他的父级:用parents
<script type="text/javascript">
var pathArray = location.pathname;
$("a[href='"+pathArray+"']").parents('li').addClass("current");
</script>
第二种:
控制器里获取地址:
$action = CONTROLLER_NAME."/".ACTION_NAME;
$this->assign('action',$action);
获取到 然后前端:
<if condition=" $cdsy[0]['miaoshu'] eq $action">
看看是不是跟我存的地址是一样的!
ok 学习笔记@@@