您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> php >> 正文

无限级别菜单的实现(其实还是有限级别的^0^)

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-2-2 我要参与讨论

 


<? /* 看到很多朋友问过无限级别菜单的的问题(其实理论上还是有级别的,毕竟要受到个方便的条件的限制,比如: 数据库字段的类型等),我曾经用老大(唠叨)提供的代码写出来过无限级别的菜单,但是感觉效果不是很好(视觉上),于是趁着"夜深人静"就写这个"无限制级别的菜单",其实道理很简单,主要是数据表的设计,还有递归方法的使用(如果有时间我会用中值排序法来做),我会在下面给出数据结构的设计(非常简单),这里我没有加上竖直的虚线(windows资源管理器的虚线),同时sql语句我也将其固定,大家可以根据自己的需要来修改!如果有问题可以联系我:msn:banneryue@sina.com,qq:7665656,e_mail:yuepengfei@mail.banner.com.cn

明天(已经是今天了,呵呵)我会提供一个测试页面让大家来看(因为我在宿舍只能拨号上网,ip地址不固定)

*/

/** 递归显示子节点函数
*
*
* @param $searchpattern 查找的条件(like)
* @param $basenum 节点的层数
*/

 function listchildtree($searchpattern,$basenum){
 global $tree;//声明连接数据库的句柄为全局
 $sql="select departmentid,departmentname from test where departmentid like '$searchpattern'"; //查找孩子节点
 $querychild=$tree->query($sql);
 while($result=$tree->fetch_array($querychild)) { //取出孩子节点
 $space="";
for($j=0;$j<((strlen($searchpattern)/3)-$basenum);$j++)
$space.=" ";  //设置显示节点前面的距离,这里的空格的html被这里自动替换成" "了
 $childdepartment=trim($result[0])."___";
 $childsql="select count(*) from test where departmentid like '$childdepartment'";//查找孩子节点的孩子节点
 $childresult=$tree->query_first($childsql);  
 $tableid="ta".trim($result[0]); //设置表格

[1] [2] [3] [4] [5] 下一页

在google里搜索更多无限级别菜单的实现(其实还是有限级别的^0^)

Google
Web www.51ec.org
  • 上一篇信息学院:

  • 下一篇信息学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    我来说两句 对此文章发表了评论
      昵 称: *必填    ·注册用户·
      评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
    评 论
    内 容

     
    评论列表 (最新 评论仅限网友观点!)

    供求信息




    | 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明