Задать вопрос
@HeX-2000

Отрисовать меню рекурсией php mysql JSON

Доброго времени.
Имеется Бд

id  name   parenid
1   Server   0
2   Client   0
4   PHP      1
5   HTML     2
6   Css      5

Выборка меню в php
PHP class 

class Menu{

private $items=array();


  function getMenu(){
    $sql="select * from category " ;
    $ret=mysql_query($sql) ;
    while($row=mysql_fetch_assoc($ret)){
      $q[$row['id']]=$row;
    }
    return $q;
  }


  function mapTree($dataset) {

    $tree = array();

    foreach ($dataset as $id=>$node) {
      if ($node['parentid']==0) {
          $tree[$node['id']]['root'] = $node;
      }else{
      $tree[$node['parentid']]['childs'][$id] = $node;
    }
    }
    return $tree;

}

$menus=new Menu();

echo json_encode($menus->mapTree($menus->getMenu()));


Вопрос,как возможно отрисовать древовидное меню, на клиенте используя рекурсию ?
$(function(){
    $.getJSON('main.php?j=get', function(json) {
      rec(json);
    });
});    

function rec(obj){
   if(obj instanceof Object){
     list='<ul>';
      $.each(obj,function(k,v){
      if(v['root']){
        list+='<li>'+v['root'].cat_name+'</li>';
        
      }
      
      if(v['childs']){
        
        $.each(v['childs'],function(f,vv){
          list+='<li>'vv.cat_name+'</li>';
        });
      }
      $('.menu').html(list);
      rec(v['childs']);
      list+='</ul>'
      
    });
      
  }
}

Всё-бы нечего но выводится только главное меню или под меню.
Как можно реализовать такую идею.
П.С
Спасибо всем за уделённое время .
  • Вопрос задан
  • 2805 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы