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源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php中常用的预定义变量小结
May 09 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
php截取中文字符串函数实例
Feb 23 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
CI配置多数据库访问的方法
Mar 28 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
基于thinkPHP类的插入数据库操作功能示例
Jan 06 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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
15种PHP Encoder的比较
2007/04/17 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
Vue.js学习教程之列表渲染详解
2017/05/17 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
python实现键盘控制鼠标移动
2020/11/27 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
python如何写出表白程序
2020/06/01 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
自我鉴定怎么写
2013/12/05 职场文书
机电工程学生自荐信范文
2013/12/07 职场文书
优秀员工评语
2014/02/10 职场文书
仓库管理计划书
2014/05/04 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
感恩教师节主题班会
2015/08/12 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python