用PHP实现多级树型菜单

---摘自互联网

<?
//树型目录结构模板程序
//菜单目录库字段说明:
//menu_id 菜单项目 id
//menu 菜单名称
//menu_grade 菜单等级 1 为主菜单 2 为二级菜单 ........
//menu_superior 上一级菜单 id 号

function my_menu($menu_content,$i,$menu_grade_temp,$menu_superior_temp)
{
global $PHP_SELF;
$temp1=$menu_grade_temp+1;
$menu_superior_temp_array=split("/",$menu_superior_temp);
for ($t=0;$t<$i;$t++)
{
$menu_array=split("/",$menu_content[$t]);
If(($menu_array[2]==$menu_grade_temp)&&($menu_array[3]==$menu_superior_temp_array[$menu_grade_temp-1]))
{
for($p=1;$p<=$menu_grade_temp;$p++){echo " ";}
$temp3=$menu_superior_temp_array;
$temp3[$menu_grade_temp]=$menu_array[0];
$temp2=implode("/",$temp3);
if ($menu_array[0]==$menu_superior_temp_array[$temp1-1])
{
$temp5=$temp1-1;
$temp3[$menu_grade_temp]="";
$temp6=implode("/",$temp3);
echo "<a href=/"$PHP_SELF?menu_grade_temp=".$temp5."&menu_superior_temp=$temp6/">$menu_array[1]</a>
";
my_menu($menu_content,$i,$temp1,$temp2);
}
else
{
$temp3[$menu_grade_temp+1]="";
$temp6=implode("/",$temp3);
echo "<a href=/"$PHP_SELF?menu_grade_temp=".$temp1."&menu_superior_temp=$temp6/">$menu_array[1]</a>
";
}
}
}
}
// 连接 MySql 数据库
$db_host="localhost";
$db_user="dkj";
$db_password="123";
$db_name="test";
mysql_connect($db_host,$db_user,$db_password);
mysql_select_db($db_name);

//从数据库中取得数据
$query_string="select * from menu order by menu_grade";
$db_data=mysql_query($query_string);

//第一次执行初始化
if ($menu_grade_temp=="")
{
$menu_superior_temp=0;
}

//将所有的信息读入数组,并统计数组个数
$i=0;
while (list($menu_id,$menu,$menu_grade,$menu_superior)=mysql_fetch_row($db_data))
{
$menu_content[$i]=$menu_id."/".$menu."/".$menu_grade."/".$menu_superior;
$i++;
}
my_menu($menu_content,$i,1,$menu_superior_temp);

/* 附数据库结构及模拟数据
# phpMyAdmin MySQL-Dump
#
# 主机: localhost 数据库 : test
# --------------------------------------------------------

#
# 数据表的结构 'menu'
#

CREATE TABLE menu (
menu_id int(11) NOT NULL auto_increment,
menu varchar(20) NOT NULL,
menu_grade int(11) NOT NULL,
menu_superior int(11) NOT NULL,
UNIQUE menu_id (menu_id)
);

#
# 导出下面的数据库内容 'menu'
#

INSERT INTO menu VALUES( '1', '计算机', '1', '0');
INSERT INTO menu VALUES( '2', '编程', '2', '1');
INSERT INTO menu VALUES( '3', '网络', '2', '1');
INSERT INTO menu VALUES( '4', 'PHP与MySql', '3', '2');
INSERT INTO menu VALUES( '5', 'C语言', '3', '2');
INSERT INTO menu VALUES( '6', '网页制作', '3', '3');
INSERT INTO menu VALUES( '7', 'TCP、IP协议', '3', '3');
INSERT INTO menu VALUES( '8', '数学', '1', '0');
INSERT INTO menu VALUES( '9', '高等数学', '2', '8');
INSERT INTO menu VALUES( '10', '线性代数', '3', '9');
INSERT INTO menu VALUES( '11', '离散数学', '3', '9');
INSERT INTO menu VALUES( '12', '初等数学', '2', '8');
INSERT INTO menu VALUES( '13', '文学', '1', '0');
INSERT INTO menu VALUES( '14', '中国文学', '2', '13');
INSERT INTO menu VALUES( '15', 'php', '4', '4');
INSERT INTO menu VALUES( '16', 'mysql', '4', '4');
*/
?>

用PHP实现多级树型菜单相关推荐

  1. php创建多级栏目_用PHP实现多级树型菜单

    用PHP实现多级树型菜单 更新时间:2006年10月09日 00:00:00   作者: //树型目录结构模板程序 //菜单目录库字段说明: //menu_id 菜单项目 id //menu 菜单名称 ...

  2. php 修改多级菜单,用PHP实现多级树型菜单

    用PHP实现多级树型菜单 ---摘自互联网 //树型目录结构模板程序 //菜单目录库字段说明: //menu_id 菜单项目 id //menu 菜单名称 //menu_grade 菜单等级 1 为主 ...

  3. CSS+JS灰色树型菜单导航代码

    代码简介: CSS+JS打造的树型菜单,没有怎么美化,颜色看上去也不很美,提供一种思路,真想用的朋友好好修改一下颜色,里面都有注释,相信通过你的努力,它最终的效果一定很漂亮. 代码内容: <!D ...

  4. php创建无限级树型菜单以及三级联动菜单

    http://www.php.cn/php-weizijiaocheng-373500.html 这篇文章主要介绍了php创建无限级树型菜单 ,主要使用的是递归函数,感兴趣的小伙伴们可以参考一下 写递 ...

  5. php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...

    通过处理array,添加level,is_leaf属性实现 树型菜单 公共类 通过处理array,添加level,is_leaf属性实现 树型菜单 /*树形分类添加节点属性 *$data, 要处理的节 ...

  6. java 动态树_使用dtree构建动态树型菜单

    dtree是一个免费的javascript脚本,只需定义有限的几个参数,就可以做出漂亮的树型菜单.下载目录: 以下是dtree的用法示例: 1)初始化菜单 2)调用函数 2.jsp动态实现 分以下步骤 ...

  7. HTML模仿QQ好友列表,JS+CSS实现类似QQ好友及黑名单效果的树型菜单

    本文实例讲述了JS+CSS实现类似QQ好友及黑名单效果的树型菜单.分享给大家供大家参考.具体如下: 今天介绍的这个菜单堪称极品啊,不过里面的有些图标丢失了,路径还留在那,真想使用的朋友自己制作两个折叠 ...

  8. 下拉的DIV+CSS+JS二级树型菜单,刷新无影响

    二级菜单,不论展开几个栏目,刷新不影响! Code <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

  9. DIV+CSS+JS二级树型菜单,刷新无影响

    二级菜单,不论展开几个栏目,刷新不影响! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &qu ...

最新文章

  1. sift线特征提取代码_Transformer 又立功了!又快(420 fps)又好的车道线检测算法
  2. 【机器学习】支持向量机和ensemble method的解析应用
  3. java取二进制其中两位_Java:二进制(原码、反码、补码)与位运算(示例代码)...
  4. 免费时代的4种销售方式
  5. 蚂蚁区块链正式升级为蚂蚁链:首次公布“日活”超1亿
  6. SpringSecurity Form Login
  7. 闭包,作用域链,垃圾回收,内存泄露
  8. android gridvie item,Android开发―解决自定义GridView高度第一个item高度异常问题
  9. [转] Python标准库的threading.Thread类
  10. 设置IDEA修改html、jsp后立即生效,不用重启项目
  11. 利用R语言绘制世界航班路线图
  12. 电大 计算机网络 网考,2018-2019年最新电大《计算机网络(本)》网络核心课形考网考作业答案.docx...
  13. python中的反三角函数_用python画所有三角函数和反三角函数图像
  14. python教程54--D-Tale工具介绍
  15. nginx 正反代理(超级玛丽小游戏)
  16. mysql编译器安卓版_手机在线编译器
  17. 什么是SQL注入攻击?SQL注入攻击的危害以及防护
  18. 数据结构笔记(六)——散列(Hash Table)之双散列和再散列(4)
  19. 弟弟的作业c语言,用C语言解决弟弟的作业问题
  20. SAP 数据字典常用数据类型

热门文章

  1. GridSearchCV 参数
  2. IntelliJ IDEA 偏好设置
  3. 从excel导入数据库过程中遇到的空格转义符(#160;)
  4. 粘包问题以及解决方法
  5. 解决svn中“工作副本已经锁定”,或者svn清理失败的解决方法
  6. 如何解决Win10预览版一闪而过的disksnapshot.exe进程?
  7. bootstrap3的 progress 进度条
  8. How to Configure Eclipse for Python --- 在eclipse中如何配置pydev
  9. 5G关键技术:大规模多天线技术现状及研究点介绍
  10. SpringBoot (6)---RestTemplate方法详解(2)