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脚本的10个技巧(6)
Oct 09 PHP
php adodb操作mysql数据库
Mar 19 PHP
php下删除一篇文章生成的多个静态页面
Aug 08 PHP
php动态实现表格跨行跨列实现代码
Nov 06 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
tp5修改(实现即点即改)
Oct 18 PHP
phpstudy2020搭建站点的实现示例
Oct 30 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 htmlspecialchars加强版
2010/02/16 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
PHP钩子实现方法解析
2019/05/21 PHP
jQuery 性能优化手册 推荐
2010/02/23 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
vue 请求后台数据的实例代码
2017/06/22 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
python之Character string(实例讲解)
2017/09/25 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python表格存取的方法
2018/03/07 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python之修改图片像素值的方法
2019/07/03 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
工程招投标邀请书
2014/01/26 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
暑期实践个人总结
2015/03/06 职场文书
高一军训口号
2015/12/25 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP