PHP+JS三级菜单联动菜单实现方法


Posted in PHP onFebruary 24, 2016

本文实例讲述了PHP+JS三级菜单联动菜单实现方法。分享给大家供大家参考,具体如下:

<html>
  <head>
    <title>
      智能递归菜单-读取数据库
    </title>
    <style>
      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 }
    </style>
    <script language=javascript>
      function ShowMenu(MenuID) {
        if (MenuID.style.display == "none") {
          MenuID.style.display = "";
        } else {
          MenuID.style.display = "none";
        }
      }
    </script>
  </head>
  <body>
<?php
// $Id:$
//基本变量设置
$GLOBALS["ID"] = 1;
//用来跟踪下拉菜单的ID号 $layer=1;
//用来跟踪当前菜单的级数
//连接数据库
$Con=mysql_connect( "localhost", "root", "123456"); mysql_select_db(
"menu");
//提取一级菜单
$sql="select * from menu where parent_id=0" ;
$result=mysql_query($sql,$Con);
//如果一级菜单存在则开始菜单的显示
if(mysql_num_rows($result)>0) ShowTreeMenu($Con, $result, $layer, $ID); 
//=============================================
//显示树型菜单函数 ShowTreeMenu($con,$result,$layer) //$con:数据库连接 
//$result:需要显示的菜单记录集
//layer:需要显示的菜单的级数 
//=============================================
function
ShowTreeMenu($Con, $result, $layer) {
//取得需要显示的菜单的项目数
$numrows=mysql_num_rows($result);
  //开始显示菜单,每个子菜单都用一个表格来表示 echo "
   < tablecellpadding = '0'cellspacing = '0'border = '0' > "; for($rows=0;$rows
        <$numrows;$rows++) { //将当前菜单项目的内容导入数组 $menu=mysql_fetch_array($result);
        //提取菜单项目的子菜单记录集 $sql="select * frommenuwhereparent_id = $menu[id]" ; $result_sub=mysql_query($sql,$Con);
        echo " < tr > "; //如果该菜单项目有子菜单,则添加JavaScript onClick语句 if(mysql_num_rows($result_sub)>
          0) { echo " < tdwidth = '20' > < imgsrc = 'tree_expand.gif'border = '0' > < / td > "; echo " < tdclass = 'Menu'onClick = 'javascript:ShowMenu(Menu".$GLOBALS["ID"].");' > "; } else { echo " < tdwidth = '20' > < imgsrc = 'tree_collapse.gif'border = '0' > < / td > "; echo " < tdclass = 'Menu' > "; } //如果该菜单项目没有子菜单,并指定了超级连接地址,则指定为超级连接, //否则只显示菜单名称 if($menu[url]!="")
              echo " < ahref = '$menu[url]' > $menu[name] < / a > "; else echo $menu[name]; echo " < / td > < / tr > "; //如果该菜单项目有子菜单,则显示子菜单 if(mysql_num_rows($result_sub)>0) { //指定该子菜单的ID和style,以便和onClick语句相对应
            echo " < trid = Menu".$GLOBALS["ID "]++ . " style='display:none'>";
  echo "<td width='20'></td>";
  echo "<td>";
  //将级数加1
  $layer++;
  //递归调用ShowTreeMenu()函数,生成子菜单 
  ShowTreeMenu($Con,$result_sub,$layer);
  //子菜单处理完成,返回到递归的上一层,将级数减1
  $layer--;
  echo "< / td > < / tr > ";
  }
  //继续显示下一个菜单项目
  } echo " < / table > "; }
  ?>
      <?php
      $id=1 ;
      function test() {
      global $id; unset($id);
      }
      test();
      echo " < fontclass = menu > ".($id). " < / font > ";
      // 在 PHP 4 中这里会打印出 1
      ?>
      <?php
      $a=1 ;
      $b=2 ;
      function Sum() {
      global $a, $b; $b=$ a + $b;
      }
      Sum();
      echo " < fontclass = menu > ".$b. " < / font > ";
      ?>
  </body>
</html>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP实现多服务器共享SESSION数据的方法
Mar 16 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
加强版phplib的DB类
Mar 31 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
php后台多用户权限组思路与实现程序代码分享
Feb 13 PHP
ThinkPHP实现多数据库连接的解决方法
Jul 01 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
PHP实现的观察者模式实例
Jun 21 PHP
php实现的数组转xml案例分析
Sep 28 PHP
php实现推荐功能的简单实例
Sep 29 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 #PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 #PHP
PHP设计模式之简单投诉页面实例
Feb 24 #PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
Feb 23 #PHP
phalcon框架使用指南
Feb 23 #PHP
PHP计算日期相差天数实例分析
Feb 23 #PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 #PHP
You might like
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
JSONP跨域请求
2017/03/02 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
Python的re模块正则表达式操作
2016/05/25 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
python pymysql库的常用操作
2020/10/16 Python
python中count函数知识点浅析
2020/12/17 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
weblogic面试题
2016/03/07 面试题
以下的初始化有什么区别
2013/12/16 面试题
什么是URL
2015/12/13 面试题
医学院毕业生自荐信
2013/11/08 职场文书
制定岗位职责的原则
2013/11/08 职场文书
药学专业大专生的自我评价
2013/12/12 职场文书
公司承诺书格式
2014/05/21 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
运动会广播稿200字
2015/08/19 职场文书
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS