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下实现农历日历的代码
Mar 07 PHP
PHP与SQL注入攻击防范小技巧
Sep 16 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
php中array_slice和array_splice函数解析
Oct 18 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
PHP实现负载均衡session共享redis缓存操作示例
Aug 22 PHP
Laravel配合jwt使用的方法实例
Oct 25 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基本语法总结
2014/09/06 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
Javascript代码在页面加载时的执行顺序介绍
2013/05/03 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
Python使用django获取用户IP地址的方法
2015/05/11 Python
Python实现图像几何变换
2015/07/06 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python处理大日志文件
2019/07/23 Python
Django对models里的objects的使用详解
2019/08/17 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
IBatis持久层技术
2016/07/18 面试题
手机业务员岗位职责
2013/12/13 职场文书
打架检讨书400字
2014/01/17 职场文书
信息管理应届生求职信
2014/03/07 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
python数据处理之Pandas类型转换
2022/04/28 Python