PHP树的代码,可以嵌套任意层

2016-02-19 11:08 10 1 收藏

下面图老师小编跟大家分享一个简单易学的PHP树的代码,可以嵌套任意层教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - Web开发 】


PHP树的代码,可以嵌套任意层?
file://建立树的主要函数,传递的参数为根节点的编号和根节点的标题
function create_tree($rootid,$roottilte){
  print_parent_from_rootsortid($rootid,$roottilte);
}
file://打印根节点div头的函数
function print_parent_from_rootsortid($rootid,$roottilte){
  $parent_fullname="R".$rootid."Parent";                      file://div 父级区别标志
  $parent_id="R".$rootid;
  $parent_pic="R".$rootid."img";
  echo "
      DIV class=parent id=$parent_fullnameA
      href="http://www.csdn.net/expert/menu.shtm#"
      onclick="expandIt('$parent_id'); return false"IMG border=0 height=13 id=$parent_pic
      src="image/folderclosed000.gif" width=19$roottilte/A/DIV";

  global $cursor_tree;
  $Bottom_Flag=0;
  $len=strlen($rootid)+2;      file://子级编码为父级编码长度加2
  $query = "SELECT ResourceSortNo,ResourceSortName,SectionBottomFlag
            From TbSort
            Where length(ResourceSortNo)=$len and ResourceSortNo like '$rootid%'";            file://sql查询语句
  ora_parse($cursor_tree, $query) or die;
  ora_exec($cursor_tree);

  $child_fullname="R".$rootid."Child";                     file://div 子级区别标志
  echo "DIV class=child id=$child_fullname";             file://打印一个div子级头
  while(ora_fetch($cursor_tree)){
    $Sort_No  = trim(ora_getcolumn($cursor_tree,0));
    $Sort_Title = trim(ora_getcolumn($cursor_tree,1));
    $Bottom_Flag  = trim(ora_getcolumn($cursor_tree,2));
    print_child_from_rootsortid($Sort_Title,$Sort_No, $Bottom_Flag);           file://循环调用打印子级编码函数
  }
  echo "/DIV";

}
file://判断是否是末级标志,并且打印子级编码的函数
function print_child_from_rootsortid($Section_Title,$Section_No,$Bottom_Flag){
  global $num;
  $len=2*$num+2;
  for($j=0;$j$len;$j++){
    echo " ";
  }                                                                   file://输出节点之间间距空格的循环

  if($Bottom_Flag==1){
    echo "
    IMG border=0 height=13 src="image/folderclosed000.gif" width=19
    A href="http://www.csdn.net/expert/exchange.asp" target=forum$Section_Title/ABR";
  }else{
    $p_id="R".$Section_No;
    $p_pic="R".$Section_No."img";
    echo "
    IMG border=0 height=13 id=$p_pic src="image/folderclosed000.gif" width=19
    A href="http://www.csdn.net/expert/exchange.asp" onclick="expandIt('$p_id'); return false"$Section_Title/ABR";
    $child_fullname="R".$Section_No."Child";
    echo "DIV class=child id=$child_fullname";                     file://打印div子标志头
    find_allchild_from_rootsortid($Section_No);                      file://查找子级别内容-----嵌套递归函数甲
    echo "/DIV";                                                   file://打印div子标尾部

  }

}
file://查询所有子级编码的函数
function find_allchild_from_rootsortid($Section_No){
  global $handle,$num;
  $num++;
  $cursor_ary[$num] = ora_open($handle);
  $len=strlen($Section_No)+2;      file://μ?μ?×ó??±e±ào?3¤?è
  $query = "SELECT ResourceSortNo,ResourceSortName,SectionBottomFlag
            From TbSort
            Where length(ResourceSortNo)=$len and ResourceSortNo like '$rootid%'";            file://sql查询语句
  ora_parse($cursor_ary[$num], $query) or die;
  ora_exec($cursor_ary[$num]);
  while(ora_fetch($cursor_ary[$num]))
  {
    $Sort_Title = trim(ora_getcolumn($cursor_ary[$num],1));
    $Sort_No  = trim(ora_getcolumn($cursor_ary[$num],0));
    $Bottom_Flag  = trim(ora_getcolumn($cursor_ary[$num],2));
    print_child_from_rootsortid($Sort_Title,$Sort_No,$Bottom_Flag);       file://打印所有的子级节点-----嵌套递归函数乙
  }
  $num--;
}


?

来源:http://www.tulaoshi.com/n/20160219/1596604.html

延伸阅读
标签: Web开发
基于jquery的锁定弹出层 这个东西也是随手总结出来的,引用了一些js框架jquery的方法。 div遮盖其他控件的方法参考了 对于需要遮盖flash的,请将flash控件的WMode变量值设置为Transparent 使用方法: 代码如下: script src="jquery.js"/script script src="effect/maskDiv.js"/script script //配置模块 var moduleEvent = [{"i...
标签: PHP
/* * @(#)Cngift.php 1.82 03/06/25 * * 开花石头编写的示例文档 * 将对编码规范做简单的示范 * */ require( db.php ); /** * 示范用类 * * @version 1.82 03.06.25 * @author 开花石头 */ class Blah extends SomeClass { /* 这个类运行时的注释写在这里 */ /** 关于变量的注释写在这里 */ ...
标签: Web开发
做树并不复杂,但我们通常做的是2层或3层,那样的数据一般来自多个表,比如:部门,员工 然而这种自连接的表,其没有确定的层次,可能是无限多级 比如:a是b的上级,b是c的上级,c是d的上级... 每个上级有几个下级,下级的层次,都是动态的 解决这个问题,其实主要用到js的知识 可以使用div的innerHTML属性 当然也可以用table,用append的...
标签: PHP
使用前,先在根目录创建cache文件夹,然后运行1.php,第一次运行和第二次运行速度差异很大。 欢迎熟悉PHP的朋友使用和提意见。 使用方法:(请保存为1.php)
标签: Web开发
直接看代码: 代码如下: %@ Page Language="C#" AutoEventWireup="true" CodeFile="Layer.aspx.cs" Inherits="Layer" % !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head runat="server" title/title scri...

经验教程

561

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部