/* author: nick date: 2009.05.17 功能:生成SeletTree 属性: $result 结果集 $id_field 自身id字段 $parent_field 父类id字段 $option_text 选项显示名称 $select_name 下拉菜单的名称 $elected 默认选中 $no_top 是否需要顶层选项 $level 层深度 $parent_id 同层中的id */ class SelectTree{ public $result; public $select_name; public $option_text; public $elected; public $id_field; public $parent_field; public $no_top; public $level; public $parent_id; public $getarray; function __construct($result,$id_field,$parent_field,$option_text,$select_name='',$elected=0,$no_top=0,$level=0,$parent_id=0){ $this->result =$result; $this->id_field =$id_field; $this->parent_field =$parent_field; $this->option_text =$option_text; $this->select_name =$select_name; $this->elected =$elected; $this->no_top =$no_top; $this->level =$level; $this->parent_id =$parent_id; $this->getarray =self::getArray(); } /* 功能:返回Tree二维数组 */ function getArray(){ $arrays=array(); while($row=mysql_fetch_array($this->result)){ $arrays[$row[$this->parent_field]][$row[$this->id_field]]=$row; } return $arrays; } /* 功能:获取SelectTree */ function getSelectTree(){ $tree = ''; return $tree; } /* 功能:递归构建树状结构 */ function buildTree($array,&$tree,$option_value,$option_text,$selected,$level=0,$parent_id=0){ if(is_array($array[$parent_id])){ for($i=0;$i$space .= ' '; //选项缩进深度 foreach($array[$parent_id] as $key => $value){ if($value[$option_value] == $selected){ $tree .= '"; }else{ $tree .= '"; } $tree .=self::buildTree($array,&$tree,$option_value,$option_text,$selected,$level+1,$key); } }else{ $tree .= ''; } } } /****************************************************************************/ header("CONTENT-TYPE:TEXT/HTML;CHARSET=UTF-8"); mysql_connect("localhost","root","root"); mysql_select_db("tree"); mysql_query('set names utf8'); $result = mysql_query("select * from tvmenu"); $tree=new SelectTree($result,'id','bid','name','tree'); echo $tree->getSelectTree();
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn