当前位置:首页 » 编程语言 » 多级菜单php

多级菜单php

发布时间: 2022-05-24 20:10:52

php如何实现二级导航菜单

php 数据库设计

id title url pid leve
1 一级菜单 index.php 0 1
2 二级菜单 list.php 2 2

这种格式的 可以无限级分类
取数据的时候 按level 取 几级就是几级 ,

循环的话 就是先 循环 level=1的分类,然后再循环里面套小循环

这是最基本的方法

还有一种就是

自定义函数 生成tree 树形结构 最后用css, js美化加特效

❷ 用php如何制作一个三级联动菜单呢

这个需要和JS一起使用制作 单独PHP是不可能完成的
在一个数据库要好好设计比如 1级2级3级菜单的ID 和表示每个级别的CODE之类的

❸ 如何用PHP代码创建多级下拉菜单

不太清楚你要什么效果,不过感觉你要的效果用php实现比较不实用。php是服务器脚本,如果要实现这样的效果,每点击一次,网页就得重新传输一次数据,就意味着得刷新一次页面,应该比较耗服务器资源。
如果是下拉菜单,你可以使用html的select标签实现。select标签的实用:
http://www.w3school.com.cn/tags/tag_select.asp
如果是类似类似大部分网站上的导航栏,点击某字样出现详细分类之类的。如本网页中的“问题库”字样,就可以通过div+javascript,再加点
css效果,就可以实现。
http://www.ice.net/html/list_622.html里面有不同的导航栏显示隐藏效果。
最后,以上只是个人拙见,你觉得有可用之处就参考下吧,我也是新手,希望不会误导你。

❹ PHP如何实现多级菜单(多维数组的形式)

$rs = mysql_query($sql);
这里的sql有问题。
大概是你sql语句出错了。导致返回了false;
所以mysql_fetch_array()出错。
检查一下sql

❺ 求PHP多级菜单数据查询及展示代码的算法优化(全部分奉上)

publicfunctionempowerList(){
$sql="selectueid,pid,name,,ueidASC";
$datas=$this->db->getAll($sql);
$list=array();
if(!empty($datas)){
foreach($datasas$k=>$v){
$list[$v['pid']][]=$v;
}
}
return$list;
}


然后你在根据$list的结构组织一下页面显示就好了

❻ phpcms v9 怎么做二级菜单

phpcms v9中调用二级菜单有2种方法:
第一种:
{loop subcat(catid) $v}
{/loop}
这种方法的好处是代码简洁,容易记住。
缺点:不能限制显示的条数
第二种方法:
{pc:content action=”category” catid=”0″ }
{loop $data $r}
{$r[catname]} ——————-顶级栏目
{pc:content action=”category” catid=”$r[catid]“}
{loop $data $v}
{$v[catname]}——————二级栏目
{/loop}
{/pc}
{/loop}
{/pc}
这种方法的优点:可以控制你想要的条数

❼ thinkphp框架怎么做一个三级菜单

thinkphp框架onethink后台支持三级菜单
onethink后台支持三级菜单,CMS管理后台1.0版本本身不支持三级菜单,稍加改动,即可支持无限级分类
/**
* 获取控制器菜单数组,二级菜单元素位于一级菜单的'_child'元素中
* @author 朱亚杰 <[email protected]>
*/
final public function getMenus($controller=CONTROLLER_NAME){
// $menus = session('ADMIN_MENU_LIST'.$controller);

$flag=false;//是否开启menu三级菜单

if(empty($menus)){
// 获取主菜单
$where['pid'] = 0;
$where['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否开发者模式
$where['is_dev'] = 0;
}
$menus['main'] = M('Menu')->where($where)->order('sort asc')->select();

$menus['child'] = array(); //设置子节点

//高亮主菜单
$current = M('Menu')->where("url like '%{$controller}/".ACTION_NAME."%'")->field('id')->find();
if($current){
$nav = D('Menu')->getPath($current['id']);
$nav_first_title = $nav[0]['title'];

foreach ($menus['main'] as $key => $item) {
if (!is_array($item) || empty($item['title']) || empty($item['url']) ) {
$this->error('控制器基类$menus属性元素配置有误');
}
if( stripos($item['url'],MODULE_NAME)!==0 ){
$item['url'] = MODULE_NAME.'/'.$item['url'];
}
// 判断主菜单权限
if ( !IS_ROOT && !$this->checkRule($item['url'],AuthRuleModel::RULE_MAIN,null) ) {
unset($menus['main'][$key]);
continue;//继续循环
}

// 获取当前主菜单的子菜单项
if($item['title'] == $nav_first_title){
$menus['main'][$key]['class']='current';
//生成child树
$groups = M('Menu')->where("pid = {$item['id']}")->distinct(true)->field("`group`")->select();
if($groups){
$groups = array_column($groups, 'group');
}else{
$groups = array();
}

//获取二级分类的合法url
$where = array();
$where['pid'] = $item['id'];
$where['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否开发者模式
$where['is_dev'] = 0;
}
$second_urls = M('Menu')->where($where)->getField('id,url');
$third_urlss=array();

if(!empty($second_urls) && $flag){
foreach($second_urls as $key=>$v){

$wheres = array();
$wheres['pid'] = $key;
$wheres['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否开发者模式
$wheres['is_dev'] = 0;
}
$third_urls[] = M('Menu')->where($wheres)->getField('id,url');
foreach($third_urls as $vv){
foreach($vv as $key=>$vs){
$third_urlss[$key]=$vs;
}
}
}
}

if(!IS_ROOT){
// 检测菜单权限
$to_check_urls = array();

foreach ($second_urls as $key=>$to_check_url) {
if( stripos($to_check_url,MODULE_NAME)!==0 ){
$rule = MODULE_NAME.'/'.$to_check_url;
}else{
$rule = $to_check_url;
}
if($this->checkRule($rule, AuthRuleModel::RULE_URL,null))
$to_check_urls[] = $to_check_url;
}
if(!empty($third_urlss) && $flag){
foreach ($third_urlss as $key=>$to_check_urlss) {
if( stripos($to_check_urlss,MODULE_NAME)!==0 ){
$rules = MODULE_NAME.'/'.$to_check_urlss;
}else{
$rules = $to_check_urlss;
}
if($this->checkRule($rules, AuthRuleModel::RULE_URL,null))

echo $rules."<br/>";
$to_check_urlsss[] = $to_check_urlss;
}
}

}

// 按照分组生成子菜单树
foreach ($groups as $g) {
$map = array('group'=>$g);
if(isset($to_check_urls)){
if(empty($to_check_urls)){
// 没有任何权限
continue;
}else{
$map['url'] = array('in', $to_check_urls);
}
}
$map['pid'] = $item['id'];
$map['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否开发者模式
$map['is_dev'] = 0;
}
$menuList = M('Menu')->where($map)->field('id,pid,title,url,tip')->order('sort asc')->select();

$menus['child'][$g] = list_to_tree($menuList, 'id', 'pid', 'operater', $item['id']);
//支持三级菜单
if(!empty($menus['child'][$g]) && $flag){
foreach($menuList as $key=>$v){
$maps['pid'] = $v['id'];
$menuLists = M('Menu')->where($maps)->field('id,pid,title,url,tip')->order('sort asc')->select();
$menus['child'][$g][$key]['ttt'] = list_to_tree($menuLists, 'id', 'pid', 'operater', $v['id']);
}
}
}
if($menus['child'] === array()){
//$this->error('主菜单下缺少子菜单,请去系统=》后台菜单管理里添加');
}
}
}
}
// session('ADMIN_MENU_LIST'.$controller,$menus);
}
return $menus;
}
然后Public/base.html
<!-- 边栏 -->
<div class="sidebar">
<!-- 子导航 -->
<block name="sidebar">
<div class="sidebar-collapse" id="sidebar-collapse">
<i class="fa fa-angle-double-left"><<</i>
</div>
<div id="subnav" class="subnav">
<notempty name="_extra_menu">
{// 动态扩展菜单 //}
{:extra_menu($_extra_menu,$__MENU__)}
</notempty>
<volist name="__MENU__.child" id="sub_menu">
<!-- 子导航 -->
<notempty name="sub_menu">
<notempty name="key"><h3><i class="icon icon-unfold"></i>{$key}</h3></notempty>
<ul class="side-sub-menu">
<volist name="sub_menu" id="menu">
<li>
<a class="item" href="{$menu.url|U}">{$menu.title}</a>
</li>
</volist>
<notempty name="menu.ttt">
<volist name="menu.ttt" id="menus">
<li>
<a class="item" href="{$menus.url|U}">{$menus.title}</a>
</li>
</volist>
</notempty>
</ul>
</notempty>
<!-- /子导航 -->
</volist>
</div>
</block>
<!-- /子导航 -->
</div>

❽ php里多级联动下拉菜单如何做

数据库设计:
database:db;
table:sort1,sort2;
sort1-data:idnamevablue
1aa
2bb

sort2-data:idnameparent_id
1aa-a1
2aa-x1
3bb-m2
4bb-j2
在dw中放置2个跳转菜单,
在第一个select中添如下代码:
<option>---请选择---</option>
<?php
$host="localhost";
$db_name="db";
$username="root";
$password="";
$conn=mysql_connect($host,$username,$password)ordie("不能链接到数据库!");
$db=mysql_select_db($db_name,$conn);
$sql="select*fromsort1orderbyidASC";
$result=mysql_db_query($db_name,$sql);
while($row=mysql_fetch_array($result)){
$sort1_id=$row["id"];
$sort1_name=$row["name"];
$sort1_value=$row["value"];
if(!$sort1_value){
$str="<optionvalue='?data1=$sort1_id'";
if($row["id"]==$data1){
$str.="selected";
}
}
else{
$str="<optionvalue='$sort1_value'";
}
$str.=">$sort1_name</option>";
echo$str;
}
?>

❾ php数组的重组及多级下拉菜单

<?php
$arr = array(
array("title"=>"w15","url"=>"l2","url2"=>"width","value"=>"3.2"),
array("title"=>"w15","url"=>"l3","url2"=>"width","value"=>"3.1"),
array("title"=>"w15","url"=>"l4","url2"=>"width","value"=>"3.0"),
array("title"=>"w15","url"=>"l5","url2"=>"width","value"=>"3.1"),
array("title"=>"w15","url"=>"l6","url2"=>"width","value"=>"3.4"),
array("title"=>"w16","url"=>"l8","url2"=>"width","value"=>"3.8"),
array("title"=>"w16","url"=>"l9","url2"=>"width","value"=>"3.9")
);

$new_arr = array();

foreach($arr as $item) {
$k = $item['title'];
if(!isset($new_arr[$k])) {
$new_arr[$k] = array(
'title' => $k,
'url' => array($item['url']),
'url2' => array($item['url']),
'value' => array($item['value'])
);
} else {
$new_arr[$k]['url'][] = $item['url'];
$new_arr[$k]['url2'][] = $item['url2'];
$new_arr[$k]['value'][] = $item['value'];
}
}

//print_r($new_arr); // 如果用 title 做 key, 到这儿就可以了

$new_arr = array_values($new_arr);

print_r($new_arr);

❿ 在php后台中如何实现页面左侧常用的树状多级菜单呢如果可以的说下原理并留下一个实例吧。谢谢了!

//'name'=>'标题','main_page'=>'左导航','r_nav'=>'默认主页'
$group_type_arr=array(
2=>array('name'=>'企业管理','main_page'=>'admin_enterprise','r_nav'=>'admin_enterprise_open'),
4=>array('name'=>'个人用户管理','main_page'=>'user_ctrl','r_nav'=>'admin_user_dat'),
5=>array('name'=>'点评管理','main_page'=>'comment_ctrl','r_nav'=>'comment'),
7=>array('name'=>'统计管理','main_page'=>'stats_ctrl','r_nav'=>'admin_proct_business_count'),
8=>array('name'=>'群组管理','main_page'=>'group_ctrl','r_nav'=>'useradmin'),
);
这是左侧第一级菜单,循环这个,在它里面可以直接加入二级菜单

热点内容
微信怎么上传头像不了 发布:2025-02-13 02:57:04 浏览:118
c语言矩阵的转置 发布:2025-02-13 02:38:43 浏览:624
rowphp 发布:2025-02-13 02:37:16 浏览:711
光遇安卓服周年伞在哪里领取 发布:2025-02-13 02:22:18 浏览:674
写mv脚本软件 发布:2025-02-13 02:21:56 浏览:696
超内核源码 发布:2025-02-13 02:12:54 浏览:444
趣粉脚本 发布:2025-02-13 02:11:23 浏览:952
压缩的茶叶怎么弄开 发布:2025-02-13 02:11:16 浏览:739
n1ftp服务器 发布:2025-02-13 02:10:39 浏览:348
没有卡没有密码怎么办啊 发布:2025-02-13 01:51:53 浏览:461