手机
当前位置:查字典教程网 >编程开发 >php教程 >php 无限级 SelectTree 类
php 无限级 SelectTree 类
摘要:复制代码代码如下:/*author:nickdate:2009.05.17功能:生成SeletTree属性:$result结果集$id_fi...

复制代码 代码如下:

/*

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 = '<select name="'.$this->select_name.'">';

if($no_top){

$tree .= '<option value="0">最顶层</option>';

}

self::buildTree($this->getarray,&$tree,$this->id_field,$this->option_text,$this->selected,$this->level,$this->parent_id); //生成树状结构

$tree .= '</select>';

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<$level;$i++)

$space .= ' '; //选项缩进深度

foreach($array[$parent_id] as $key => $value){

if($value[$option_value] == $selected){

$tree .= '<option value="'.$value[$option_value].'" selected="selected">'.$space.$value[$option_text]."</option>";

}else{

$tree .= '<option value="'.$value[$option_value].'">'.$space.$value[$option_text]."</option>";

}

$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();

【php 无限级 SelectTree 类】相关文章:

php判断文本文档字符编码

社区(php&&mysql)五

杏林同学录(六)

PHP SplObjectStorage使用实例

PHP实现分页的一个示例

PHP脚本的10个技巧(6)

删除无限级目录与文件代码共享

写一个用户在线显示的程序

php遍历CSV类实例

PHP脚本的10个技巧(4)

精品推荐
分类导航