+ -
当前位置:首页 → 问答吧 → 一个真正简洁高效的无限分类

一个真正简洁高效的无限分类

时间:2009-06-04

来源:互联网

本帖最后由 ipver6 于 2009-6-5 10:42 编辑

详情http://www.zeevin.cn/?p=17
<?php
header(’Content-type: text/html; charset=gb2312′);
//以下是接收的数据格式
//$array[0] = array(”id”=>1,”pid”=>0,”name”=>”诛求”);
//$array[1] = array(”id”=>2,”pid”=>0,”name”=>”2″);
//$array[2] = array(”id”=>3,”pid”=>1,”name”=>”3″);
//$array[3] = array(”id”=>4,”pid”=>1,”name”=>”4″);
//$array[4] = array(”id”=>5,”pid”=>2,”name”=>”5″);
//$array[5] = array(”id”=>6,”pid”=>4,”name”=>”6″);
//$array[6] = array(”id”=>7,”name”=>”66″,”pid”=>6);
draw($array);//执行,已经改成下拉菜单形式
function draw($array){
//tree array — copy some codes from joomla
$tree = array();
if( $array ){
        foreach ( $array as $v ){
            $pt     = $v['pid'];
            $list = @$tree[$pt] ? $tree[$pt] : array();
            array_push( $list, $v );
            $tree[$pt] = $list;
        }
}
//foreach root node
echo $sel=”<select name=’pid’><option value=0>作为根栏目</option>”;
foreach($tree[0] as $k=>$v)
{
    echo “<option value=$v[id]>$v[name]</option>”;
    if($tree[$v['id']]) drawTree($tree[$v['id']],$tree,0);
   
}
echo “</select>”;
}
//foreach child node
function drawTree($arr,$tree,$level)
{
    $level++;
    $prefix = str_pad(”|”,$level+1,’-',STR_PAD_RIGHT);
    foreach($arr as $k2=>$v2)
    {
          echo “<option value=$v2[id]>$prefix$v2[name]</option><br/>”;
          if($tree[$v2['id']]) drawTree($tree[$v2['id']],$tree,$level);
           
    }
}
?>

说不能用的同志请看一下代码再运行,别复制过去就运行,没看见数据已经被注视了吗??这只是提示你一下数据格式,没数据你分什么类,崩溃,别太懒还所有错误~~~~

作者: ipver6   发布时间: 2009-06-04

测试了一下 错误太多!

作者: 齐迹   发布时间: 2009-06-04

请先修正,再发布 。

作者: jinco   发布时间: 2009-06-04

齐迹 你得看仔细了在测试,没看见我把数据都给注释了吗?这只是告诉你这一个数据格式,复制过去改业不该就运行,真汗!

作者: ipver6   发布时间: 2009-06-05

应用有局限性,只有一种展示方式(下拉的)。

作者: 从头再来   发布时间: 2009-06-05

自己动手,丰衣足食~~~

作者: langcier   发布时间: 2009-10-20

热门下载

更多