ホームページ  >  記事  >  バックエンド開発  >  递归目录树,怎么套上UL LI

递归目录树,怎么套上UL LI

WBOY
WBOYオリジナル
2016-06-13 11:21:04866ブラウズ

递归目录树,怎样套上UL LI

本帖最后由 XingGuangYingYing 于 2013-04-15 08:18:54 编辑 function nav($parent){
$sql = mysql_query("select * from menu where parent = '$parent'");
while($row = mysql_fetch_array($sql)){
echo '
  • '.$row['name'].'';
    nav($row['id']);
    echo '
  • ';

    }
    }

    子类要怎么套上UL输出呢?   

    类似这样




    ------解决方案--------------------
    你边查询边输出,于是你就无法知道当前节点是否有子节点(因为还未读到)
    所以你需要想将查询结果读到数组 http://bbs.csdn.net/topics/390364669
    然后再递归输出

    你也可以用变量缓存待输出的内容,等递归结束时再输出
    function nav($parent){<br />  $res = '';<br />  $sql = mysql_query("select * from menu where parent = '$parent'");<br />  while($row = mysql_fetch_array($sql)){<br />    $res .= '<li><a href="'.$row['id'].'">'.$row['name'].'</a>';<br />    $t = nav($row['id']);<br />    if(! empty($t)) $res .= "<ul>$t</ul>";<br />    $res .= '</li>';<br />  }<br />  return $res;<br />}

    调用时
    echo nav($id);

    我都是用 ajax 动态加载的,所以没有递归。
    至少目前不适合你
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。