php实现无限极分类,js遍历显示无限极分类的json数组

数据库设计如下:pid代表父id,默认为0(顶级分类)

引用的方法如下:(递归的方法会降低性能)

function generateTree($data){
	    $items=array();
		foreach($data as $v){//将数组存入$items,且$items的键为$data中的id
			$items[$v['id']] = $v;
		}
		$tree=array();
		foreach($items as $item){
			if(isset($items[$item['pid']])){//通过pid判断$items中是否有对应的数组,$itms[0]不存在
				$items[$item['pid']]['sub'][]=&$items[$item['id']];
			}
			else{
				$tree[]=&$items[$item['id']];
			}
		}
		return $tree;
	}

再转为json格式。

前端js递归遍历出所有的结果:

var str = "";
var forData = function(childData,str){
	str += "├&nbsp&nbsp&nbsp";
	for(var i=0;i<childData.length;i++){	
            this.template=_.template($("#class-tpl").html());
            this.tblTemp=_.template($("#list-tpl").html());
	    var obj = childData[i];
            if(obj.sub){//若存在子类,则递归遍历
                obj.name=str+obj.name;
	        $("#tbd_class_basic").append(this.tblTemp(obj));
                forData(obj.sub,str);
	    }else{
                obj.name=str+obj.name;
                $("#tbd_class_basic").append(this.tblTemp(obj));
	    }
	 }
      }
forData(response,str);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章