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

 

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