thinkphp动态加载菜单的问题 thinkphp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个不一定,关键是构造出来的菜单结构要符合要求,也就是对$lists有要求 你参考下$list = array ( array ('id' => '1','menuname' => '系统设置','parentid' => '0','sort' => '0',), array ('id' => '2','menuname' => '用户管理','parentid' => '0','sort' => '1',), array ('id' => '3','menuname' => '文章管理','parentid' => '0','sort' => '2',), array ('id' => '4','menuname' => '评论管理','parentid' => '0','sort' => '3',), array ('id' => '5','menuname' => '类别管理','parentid' => '0','sort' => '4',), array ('id' => '6','menuname' => '用户列表','parentid' => '1','sort' => '0',), array ('id' => '7','menuname' => '用户审核','parentid' => '2','sort' => '2',), array ('id' => '8','menuname' => '文章新增','parentid' => '3','sort' => '3',), array ('id' => '9','menuname' => '文章审核','parentid' => '3','sort' => '4',),);function tree(&$list,$parent_id,$deep){ static $tree = array(); foreach($list as $v){ if($v['parentid'] == $parent_id){ $v['sort'] = $deep; $tree[] = $v; tree($list,$v['id'],$deep+1); } } return $tree; } $result = tree($list,0,0); // 无限极分类 echo '<pre>';print_r($result); echo '<pre>'; foreach($result as $v){ echo '|' . str_repeat('----',$v['sort']); echo $v['menuname']; echo '<br />'; } 对于后台菜单,我是这么设计的,仅供参考$m = M('menu');$pagedata = $m->join('left join pagemenu on pagemenu.type = menu.id')->field('pagemenu.id,menu.menuname,pagemenu.pagename,pagemenu.type,pagemenu.pageurl')->select();$res=array();foreach($pagedata as $val){ $res[$val['menuname']][]=$val;}$this->assign('res', $res);$this->display('left');tpl<volist name="res" id="vo" key="k"> <dl> <dt> {$key} </dt> <dd> <ul> <volist name="vo" id="v"> <li><a href="__APP__/{$v.pageurl}" target="mainFrame">{$v.pagename}</a> </li> </volist> </ul> </dd> </dl> </volist> html<ul id="menu"><volist name="list" id="vo"><if condition="$vo.parentid eq '0'"> <li class="item"><a href="{$vo.URL}" target="mainFrame" class="title" name="{$vo.id}">{$vo.menuname}</a></li> <else /> <volist name="vo.newchildmenu" id="rvo"> <ul id="opt_{$rvo.childmenuid}" class="optiton"> <li><a href="{$rvo.childmenuURL}" target="mainFrame">{$rvo.childmenuname}</a></li> </ul> </volist></if></volist></ul>你的代码我参考一下,我还是先用我的吧,php代码,数据表结构,html我都发了,看能不能改成我的菜单结构:系统菜单 |--管理员密码修改 留言查看 |-查看所有留言 |-审核留言菜单设置 |-查看所有菜单 |-添加菜单 |-删除菜单 |-编辑菜单现在的问题是管理员密码修改菜单能放入$lists数组中,位置正确,查看所有留言和审核留言就在$lists中放错位置 php 过滤用户提交的信息防注入只用mysql_escape_string行不行? fasttemplate模板数组输出问题. php时间 PHP动态上传失败! 一个关于大批量数据读写的问题,一个关于用session分析在线人数的问题。 如果按最后时间进行排序? 大家有谁做过printer_open(),printer_wirte()不能打印,求救!~~ url的映射及处理问题 昨天刚开始学PHP,有个问题请大家指点 在PHP中怎么样调用JAVASCRIPT中的函数? 找一个能直接将png格式转为ico格式的代码~~ 啊啊啊,为什么会这样!!!
$list = array (
array ('id' => '1','menuname' => '系统设置','parentid' => '0','sort' => '0',),
array ('id' => '2','menuname' => '用户管理','parentid' => '0','sort' => '1',),
array ('id' => '3','menuname' => '文章管理','parentid' => '0','sort' => '2',),
array ('id' => '4','menuname' => '评论管理','parentid' => '0','sort' => '3',),
array ('id' => '5','menuname' => '类别管理','parentid' => '0','sort' => '4',),
array ('id' => '6','menuname' => '用户列表','parentid' => '1','sort' => '0',),
array ('id' => '7','menuname' => '用户审核','parentid' => '2','sort' => '2',),
array ('id' => '8','menuname' => '文章新增','parentid' => '3','sort' => '3',),
array ('id' => '9','menuname' => '文章审核','parentid' => '3','sort' => '4',),
);
function tree(&$list,$parent_id,$deep){
static $tree = array();
foreach($list as $v){
if($v['parentid'] == $parent_id){
$v['sort'] = $deep;
$tree[] = $v;
tree($list,$v['id'],$deep+1);
}
}
return $tree;
}
$result = tree($list,0,0); // 无限极分类
echo '<pre>';print_r($result);
echo '<pre>';
foreach($result as $v){
echo '|' . str_repeat('----',$v['sort']);
echo $v['menuname'];
echo '<br />';
}
$m = M('menu');
$pagedata = $m->join('left join pagemenu on pagemenu.type = menu.id')->field('pagemenu.id,menu.menuname,pagemenu.pagename,pagemenu.type,pagemenu.pageurl')->select();
$res=array();
foreach($pagedata as $val){
$res[$val['menuname']][]=$val;
}
$this->assign('res', $res);
$this->display('left');tpl
<volist name="res" id="vo" key="k">
<dl>
<dt>
{$key}
</dt>
<dd>
<ul>
<volist name="vo" id="v">
<li><a href="__APP__/{$v.pageurl}" target="mainFrame">{$v.pagename}</a>
</li>
</volist>
</ul>
</dd>
</dl>
</volist>
<volist name="list" id="vo"><if condition="$vo.parentid eq '0'">
<li class="item"><a href="{$vo.URL}" target="mainFrame" class="title" name="{$vo.id}">{$vo.menuname}</a></li>
<else />
<volist name="vo.newchildmenu" id="rvo">
<ul id="opt_{$rvo.childmenuid}" class="optiton">
<li><a href="{$rvo.childmenuURL}" target="mainFrame">{$rvo.childmenuname}</a></li>
</ul>
</volist>
</if>
</volist>
</ul>你的代码我参考一下,我还是先用我的吧,php代码,数据表结构,html我都发了,看能不能改成我的菜单结构:
系统菜单
|--管理员密码修改
留言查看
|-查看所有留言
|-审核留言
菜单设置
|-查看所有菜单
|-添加菜单
|-删除菜单
|-编辑菜单现在的问题是管理员密码修改菜单能放入$lists数组中,位置正确,查看所有留言和审核留言就在$lists中放错位置