获取无限级分类怎样处理最好
现在我写的是在model里用一个方法递归,先贴代码.在模型里定义
function getCateSelect($parentId,$level)//$level为分类深度,以区分不同分类的缩进
{
$level++;
//parentId字段值为某条记录的id值时代表此类直属哪个分类
$this->db->where('parentId',$parentId);
$query=$this->db->get('ci_nav');
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo "<option value='$row->id'>";
for($i=1;$i<$level;$i++)
{
echo " ";
}
echo$row->navName;
echo "</option>";
$this->getCateSelect($row->id,$level);
}
}
}
在视图里直接<?php $this->Model_nav->getCateSelect(0,1);?>
现在的应用是生成分类的下拉表.但是觉得这样处理扩展性很不好,因为都是直接在model用echo输出html代码,想弄成对象或是数组输出,这样就不只限于生成下拉表了.对象输出,return $query->result()就行了,但有个递归在,可能是编程思想欠佳,按自己的想法return $query->result()却只获得第一层分类.请教下有此方面经验的朋友. 把所有用 echo 输出的内容用 数组 替代不就可以放到视图输出了吗 本帖最后由 乌有 于 2009-4-27 13:35 编辑
新手困扰总是多,很谢谢每次Hex的帮助.
这样是不是要用多维数组了.
对多维数组的操作不了解.
输出的时候如何遍历.
PS:解决了,遍历方法原来是一样就可以了.在model里定义一个为数组变量的属性,然后在方法中赋值就可以了. 能帮助大家解决问题,这就是 CI 中国社区应该做的事情,呵呵。 乌有 发表于 2009-4-27 13:10 static/image/common/back.gif
新手困扰总是多,很谢谢每次Hex的帮助.
这样是不是要用多维数组了.
对多维数组的操作不了解.
怎么解决的,也不贴上原码。我也是同样的问题。 出个带注释的源码,发过来看看 我的处理方法是用一条SQL查询出所有要排序的内容,另外写一个方法对数据进行排名返回一个数组给视图。:lol 看了几遍了,还是没出来结果
页:
[1]