php 权限管理菜单,角色权限管理系统(二级菜单的显示、一级菜单管理)

一级菜单的显示做好了,接下来就应该是二级菜单的显示了,要查询一级菜单下面对应的二级菜单很简单只需要取得一级菜单的id即可,按照我的设计通过点击一级菜单的超链接才能看到子菜单,通过超链接可以把一级菜单的id传给后台控制器,由控制器负责抓取数据和页面跳转

1.控制器代码

[php]

function getChildMenu(){

$smart=new Smarty();

$smart->left_delimiter="

$smart->right_delimiter="}>";

$topImpl=new TopMenuManagerImpl();

//查询用户对应的菜单

$arr=$topImpl->getChildMenuItem($_GET["parentMenu"]);

//通过菜单ID获取菜单名字

$menuname=$topImpl->getMainMenuName($_GET["parentMenu"]);

$smart->assign("child",$arr);

$smart->assign("menuname",$menuname[0]["name"]);

$smart->display("leftmain.tpl");

}

2.TopMenuManagerImpl对应的两个方法,接口代码就省略不写了

[php]

//读取子菜单

public function getChildMenuItem($parentMenu){

$db=new DBUtil();

$conn=$db->getConnection();

$base=new BaseDBOperate();

$sql="select m.* from m_menu m where parentmenu=$parentMenu";

$arr=$base->query($sql,$conn);

$db->close($conn);

return $arr;

}

//读取被点击的主菜单的名称

public function getMainMenuName($parentMenu){

$db=new DBUtil();

$conn=$db->getConnection();

$base=new BaseDBOperate();

$sql="select m.* from m_menu m where id=$parentMenu";

$arr=$base->query($sql,$conn);

$db->close($conn);

return $arr;

}

3.子菜单模板页面

[html]

到这里二级菜单也显示出来了,这里有人说把一级菜单名称传过去就可以不用再去查询菜单名称了。我这么做是为了保险起见,防止传参后出现乱码

3.菜单管理

菜单管理又分为2块,一块是一级菜单管理,另一块是二级菜单管理,两块的管理都包括增删改查四种操作,首先来看一级菜单的添加操作,下面是添加一级菜单的模板页面

[html]

function submitCheck(){

var menuname=$("#menuname").val();

if(""==menuname){

alert("菜单名称不能为空");

return false;

}

}

添加一级菜单

添加一级菜单

菜单名称:

*

下面是添加操作的控制器代码

[php]

//添加一级菜单

function addMenu(){

$smart=new Smarty();

$smart->left_delimiter="

$smart->right_delimiter="}>";

$menuManager=new TopMenuManagerImpl();

$result=$menuManager->addMenu($_POST["menuname"], "-1", "-1");

if("1"==$result){

listMenu();

}

}

addMenu方法如下

[php]

//添加一级菜单

public function addMenu($menuName,$url,$parentMenu){

$db=new DBUtil();

$conn=$db->getConnection();

$base=new BaseDBOperate();

$sql="insert into m_menu(name,url,parentmenu) values ('$menuName','$url','$parentMenu')";

$result=$base->otherOperate($sql, $conn);

$db->close($conn);

return $result;

}

下面是菜单列表显示功能也就是上面的那个listMenu,这个方法也在我们的控制器里

[php]

//一级菜单管理

function listMenu(){

$menuManager=new TopMenuManagerImpl();

$smart=new Smarty();

$smart->left_delimiter="

$smart->right_delimiter="}>";

$fenyePage = new fenyePage();

//如果当前页未获取到,则默认为首页

$fenyePage->nowPage = 1;

if (!empty ($_GET['nowPage'])) {

$fenyePage->nowPage = $_GET['nowPage'];

}

$fenyePage->url="TopMenuController.php?type=listMenu";

//设置默认每页显示几条数据

$fenyePage->everyPageRows = 5;

//默认翻页页数

$fenyePage->pageWhole = 3;

$menuManager->menuList($fenyePage);

if(($fenyePage->sumPage)pageWhole)){

$fenyePage->pageWhole=$fenyePage->sumPage;

}

//分页后的数据

$smart->assign("page",$fenyePage);

$smart->assign("data",$fenyePage->fenyeArray);

$smart->display("menuList.tpl");

}

看到了吗smarty的确很强大,我们直接可以把分页的数据和分页导航条通过smarty一起分配给模板页面,来看看这个模板页面吧

[html]

学生管理系统
选择名称操作

管理二级菜单

添加二级菜单

showNavigate()}>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值