PHP+JS无限级可伸缩菜单详解(简单易懂)_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP+JS无限级可伸缩菜单详解(简单易懂)_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4595字,纯文字阅读大概需要7分钟。
内容图文
![PHP+JS无限级可伸缩菜单详解(简单易懂)_PHP教程](/upload/InfoBanner/zyjiaocheng/167/b24ca55c010447478e34a374c77d479a.jpg)
--
-- 表的结构 `cr_columninfo`
--
代码如下:CREATE TABLE `cr_columninfo` (
`columnid` int(4) NOT NULL auto_increment,
`columnfatherid` int(4) NOT NULL default '0',
`columnname` varchar(100) NOT NULL default '',
`columnadder` varchar(50) NOT NULL default '',
`columninputdate` date NOT NULL default '0000-00-00',
PRIMARY KEY (`columnid`)
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
-- 导出表中的数据 `cr_columninfo`
--
INSERT INTO `cr_columninfo` (`columnid`, `columnfatherid`, `columnname`, `columnadder`, `columninputdate`) VALUES (1, 0, '影音明星', 'leehui', '2006-09-28'),
(2, 0, '校园风情', 'leehui1983', '2006-09-28'),
(3, 1, '港台明星', 'leehui', '2006-09-28'),
(4, 0, '风景图片', 'leehui1983', '2006-09-29'),
(5, 4, '浩瀚大海', 'leehui1983', '2006-09-29'),
(6, 5, '福州的海', 'leehui1983', '2006-09-29'),
(7, 2, '毕业图片', 'leehui', '2006-09-29'),
(9, 0, '体育明星', 'leehui1983', '2006-10-02'),
(10, 0, '精美壁纸', 'leehui1983', '2006-10-02'),
(11, 0, '城市风光', 'leehui1983', '2006-10-02'),
(12, 0, '卡通动漫', 'leehui1983', '2006-10-02'),
(13, 0, '游戏截图', 'leehui1983', '2006-10-02'),
(14, 0, '作者相册', 'leehui1983', '2006-10-02');
这些是测试数据,基本原理就是按照树型结构建立数据字段,核心就是栏目都有本身的ID号和父栏目的ID号,依靠这两个关系,建立树型结构,顶级栏目父ID=0,这个都好理解,现在来叙述下程序执行原理,本程序采用最为普遍的递归算法来遍历子菜单,首先,先查询出所有顶级菜单,显示在一个大表格里,没一行显示一个顶级菜单,再通过递归列出所有子菜单,子菜单处在上级菜单的所在行的下一行,且行的显示属性为不显示,通过程序动态生成的行ID号,结合JS控制行的显示与隐藏,也就是类似于微软菜单的可伸缩效果,文章最后有张图有助于大家理解,这是把生成页面的HTML复制进DW来只管演示程序的最终结果。
来看代码部分,并没有难懂的语法,请大家借助注释自己阅读,有兴趣可扩展此代码。
PHP代码如下:
代码如下:
栏目树形结构列表 |
//基本变量设置
$GLOBALS["ID"] =1; //用来跟踪下拉菜单的ID号
$layer=1; //用来跟踪当前菜单的级数
//连接数据库
$Con=mysql_connect("localhost","root","7529639");
mysql_select_db("cr_download");
mysql_query("SET NAMES 'GBK'");
//提取一级菜单
$sql="select * from cr_columninfo where columnfatherid=0";
$result=mysql_query($sql,$Con);
//如果一级菜单存在则开始菜单的显示
if(mysql_num_rows($result)>0) ShowTreeMenu($Con,$result,$ID);
//=============================================
//显示树型菜单函数 ShowTreeMenu($con,$result,$layer)
//$con:数据库连接
//$result:需要显示的菜单记录集
//$layer:需要显示的菜单的级数
//=============================================
function ShowTreeMenu($Con,$result,$layer)
{
//取得需要显示的菜单的项目数
$numrows=mysql_num_rows($result);
//开始显示菜单,每个子菜单都用一个表格来表示
echo "
![]() | "; "; } else{ echo " | ![]() | "; "; } //如果该菜单项目没有子菜单,只显示菜单名称 echo $menu[columnname]; echo " |
}
?>
最后贴上效果图和源代码打包,希望本文对大家有所帮助^_^
http://www.bkjia.com/PHPjc/317503.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/317503.htmlTechArticle发了几天基础的东西,今天来点稍微难的,一般在CMS系统后台中都要用到的类别管理部分的精华--无限级分类菜单,对于新手来说,这个...
内容总结
以上是互联网集市为您收集整理的PHP+JS无限级可伸缩菜单详解(简单易懂)_PHP教程全部内容,希望文章能够帮你解决PHP+JS无限级可伸缩菜单详解(简单易懂)_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。