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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
PHP 一个随机字符串生成代码
May 26 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
PHP跳转页面的几种实现方法详解
2013/06/08 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
javascript multibox 全选
2009/03/22 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js计算德州扑克牌面值的方法
2015/03/04 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
Python对象体系深入分析
2014/10/28 Python
Python中暂存上传图片的方法
2015/02/18 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
pytorch中index_select()的用法详解
2021/01/06 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
小学科学教学反思
2014/01/26 职场文书
火锅店的活动方案
2014/08/15 职场文书
应聘教师求职信范文
2015/03/20 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
不同意离婚上诉状
2015/05/23 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
预备党员入党感言
2015/08/01 职场文书
团组织关系介绍信
2019/06/24 职场文书
2019军训心得体会
2019/06/27 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
python3实现常见的排序算法(示例代码)
2021/07/04 Python