递归目录树,怎样套上UL LI 本帖最后由 XingGuangYingYing 于 2013-04-15 08:18:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function nav($parent){ $sql = mysql_query("select * from menu where parent = '$parent'"); while($row = mysql_fetch_array($sql)){ echo '<li><a href="'.$row['id'].'">'.$row['name'].'</a>'; echo '<ul>'; nav($row['id']); echo '</ul>'; echo '</li>'; }}由于你在 nav 函数中是直接输出的,所以在没有子节点时,会产生空的 <ul></ul>不过并不影响显示效果 就是会影响啊 我前端是折叠菜单 UL display为block的时候就麻烦了 网上找了一夜 中文英文 测试无数 就没有一个完美的 要么连数据库封装成类没法用 要么UL嵌套错误要么遍历N次 要么几百行代码 看着都笨拙 不知道大牛们是怎么解决的,就没有一个完美的办法? 你边查询边输出,于是你就无法知道当前节点是否有子节点(因为还未读到)所以你需要想将查询结果读到数组 http://bbs.csdn.net/topics/390364669然后再递归输出你也可以用变量缓存待输出的内容,等递归结束时再输出function nav($parent){ $res = ''; $sql = mysql_query("select * from menu where parent = '$parent'"); while($row = mysql_fetch_array($sql)){ $res .= '<li><a href="'.$row['id'].'">'.$row['name'].'</a>'; $t = nav($row['id']); if(! empty($t)) $res .= "<ul>$t</ul>"; $res .= '</li>'; } return $res;}调用时echo nav($id);我都是用 ajax 动态加载的,所以没有递归。至少目前不适合你 SESSION的问题?求解 linux 下socket编程问题 HTTP500内部服务器错误 请问外建的定义问题 请问一下在一些网站当中二级分类是怎么实现的,谢谢 如何遍历文件夹的过程中剔除不需要的文件夹 如何将sql2000的数据库转化为mysql啊?[问题] “无限级树型菜单”的问题,基于PHP+MYSQL+APACHE,请赐教! 上传文件问题:2K下可以,98下出错 mysql查询的时候有些列明明有数据但是查询结果集显示这列为Null 分类统计 (续) php分页类的问题
$sql = mysql_query("select * from menu where parent = '$parent'");
while($row = mysql_fetch_array($sql)){
echo '<li><a href="'.$row['id'].'">'.$row['name'].'</a>';
echo '<ul>';
nav($row['id']);
echo '</ul>';
echo '</li>';
}
}
由于你在 nav 函数中是直接输出的,所以在没有子节点时,会产生空的 <ul></ul>
不过并不影响显示效果
不知道大牛们是怎么解决的,就没有一个完美的办法?
所以你需要想将查询结果读到数组 http://bbs.csdn.net/topics/390364669
然后再递归输出你也可以用变量缓存待输出的内容,等递归结束时再输出
function nav($parent){
$res = '';
$sql = mysql_query("select * from menu where parent = '$parent'");
while($row = mysql_fetch_array($sql)){
$res .= '<li><a href="'.$row['id'].'">'.$row['name'].'</a>';
$t = nav($row['id']);
if(! empty($t)) $res .= "<ul>$t</ul>";
$res .= '</li>';
}
return $res;
}
调用时
echo nav($id);我都是用 ajax 动态加载的,所以没有递归。
至少目前不适合你