phpmysql函数:"函数递归"实现php和MySQL动态树型菜单来源: 发布时间:星期四, 2009年2月12日 浏览:32次 评论:0
树型菜单在很多桌面应用系统中都有非常广泛 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 经过对 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 首先 ![]() ![]() ![]() ![]() ![]() CREATE TABLE menu ( id tiny ![]() parent_id tiny ![]() name varchar(20), url varchar(60), PRIMARY KEY (id) ); 这张表中 id 为索引 parent_id 用来保存上 ![]() ![]() ![]() ![]() name 为菜单 ![]() ![]() ![]() url 如果某菜单为末级菜单 ![]() ![]() ![]() ![]() ![]() ![]() 好了 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() INSERT INTO menu VALUES ( '1', '0', '人事管理', ''); INSERT INTO menu VALUES ( '2', '0', '通讯交流', ''); INSERT INTO menu VALUES ( '3', '1', '档案管理', ''); INSERT INTO menu VALUES ( '4', '1', '考勤管理', 'http://localhost/personal/attendance.php'); INSERT INTO menu VALUES ( '5', '2', '通讯录', ''); INSERT INTO menu VALUES ( '6', '2', '网络会议', ''); INSERT INTO menu VALUES ( '7', '3', '新增档案', 'http://localhost/personal/add_achive.php'); INSERT INTO menu VALUES ( '8', '3', '查询档案', 'http://localhost/personal/search_archive.php'); INSERT INTO menu VALUES ( '9', '3', '删除档案', 'http://localhost/personal/delete_archive.php'); INSERT INTO menu VALUES ( '10', '5', '新增通讯记录','http://localhost/communication/add_address.php'); INSERT INTO menu VALUES ( '11', '5', '查询通讯记录', http://localhost/communication/search_address.php'); INSERT INTO menu VALUES ( '12', '5', '删除通讯记录', http://localhost/communication/delete_address.php'); INSERT INTO menu VALUES ( '13', '6', '召开会议', 'http://localhost/communication/convence_meeting.php'); INSERT INTO menu VALUES ( '14', '6', '会议查询', 'http://localhost/communication/search_meeting.php'); 在添加记录 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 好了!有了数据库 ![]() ![]() 1、JavaScript脚本: function ShowMenu(MenuID) { ![]() ![]() { MenuID.style.display=""; } ![]() { MenuID.style.display="none"; } } 这个脚本很简单 ![]() ![]() ![]() ![]() 2、文件: <!-- 表格样式 --> TD { FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; LINE-HEIGHT: 130%; letter-spacing:1px } <!-- 超级连接样式 --> A:link { COLOR: #990000; FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px } A:visited { COLOR: #990000; FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px } A:active { COLOR: #990000; FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; TEXT-DECORATION: none; letter-spacing:1px } A:hover { COLOR: #ff0000; FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; TEXT-DECORATION: underline; letter-spacing:1px } <!-- 其他样式 --> .Menu { COLOR:#000000; FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; CURSOR: hand } 定义了 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3、下面就是我 ![]() <html> <head> <linkShowMenu(Menu".$GLOBALS["ID"].");'>"; } ![]() { echo "<td width='20'><img src='file.g ![]() echo "<td ![]() } //如果该菜单项目没有子菜单 ![]() ![]() ![]() //否则只显示菜单名称 ![]() echo "<a href='$menu[url]'>$menu[name]</a>"; ![]() echo $menu[name]; echo " </td> </tr> "; //如果该菜单项目有子菜单 ![]() ![]() { //指定该子菜单 ![]() ![]() echo "<tr id=Menu".$GLOBALS["ID"] ![]() echo "<td width='20'> </td>"; echo "<td>"; //将级数加1 $layer ![]() //递归 ![]() ![]() ![]() ![]() ShowTreeMenu($Con,$result_sub,$layer); //子菜单处理完成 ![]() ![]() ![]() ![]() $layer--; echo "</td></tr>"; } //继续显示下 ![]() } echo "</table>"; } ?> </body> </html> 在上面 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 0
相关文章读者评论发表评论 |