用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6881|回复: 12
收起左侧

[高级] 我终于搞好了无限分级的调用!! 我太牛逼了。哈哈

[复制链接]
发表于 2012-8-27 14:21:15 | 显示全部楼层 |阅读模式
本帖最后由 xuyaokun 于 2012-8-27 14:37 编辑

项目需要加个人喜好,我是从asp转php的新手。这几天在用ci ,的确代码清爽,优雅。
可是遇到个无限分级搞的头大,如果不用mvc,直接对数据表递归,那自然太过简单了,但是即然分离式,那就彻底点把数据和显示分离。
论坛里也有不少这样的贴子,大多都很无语。要么没有给出view,要么太过繁琐,我不喜欢。

踏在前人的路,我接着前辈的model写我的view 。
http://codeigniter.org.cn/forums/thread-7986-1-1.html (没有view的原贴, model序列化数组牛逼,嘿嘿)

我再整理一下:
controllers
PHP复制代码
 
        public function index()
        {  
                $this->load->model('test_model','',TRUE);
                $data['list'] = $query = $this->aa_model->get_data();                
                //print_r($query);
                $this->load->view('test',$data);
         }
 
复制代码


models (test_model.php)
PHP复制代码
 
    function get_data()    {
     $query = $this->db->get('category');
     $this->classArray = $query->result_array();
      foreach($this->classArray as $row) {
            if($row['cid'] == 0) {
                $result[$row['id']] = $row;
                $index[$row['id']] =& $result[$row['id']];
            }else {
                $index[$row['cid']][$row['id']] = $row;
                $index[$row['id']] =& $index[$row['cid']][$row['id']];
            }
        }
        return $result;
}
 
复制代码


views (test.php)

PHP复制代码
 
<table border="1" cellpadding="3" cellspacing="1" align="center">
<tr>
<th><b>排序</b></th>
<th><b>ID</b></th>
<th align="left"><b>栏目名称</b></th>
<th><b>操作</b></th>
</tr>
<?php
function haha($list,$str=''){
        foreach($list as $v):
?>
<tr>
    <td align="center"><input type="text" size="3" id="paixu" value="<?php echo $v['cpx'];?>" /></td>
    <td align="center"><?php echo $v['cid'];?></td>
    <td><?php echo $str.$v['cname'];?></td>
    <td align="center">...</td>
  </tr>
<?php
        if(count($v)>4){
                $tem_arr = array_diff_key($v,array('id'=>'','cid'=>'','cname'=>'','cpx'=>''));
                //清除非数组重复项
                haha($tem_arr,$str. '--');                        
        }        
        endforeach;
}
haha($list);
?>
</table>
 
复制代码


我还不能上传图片,晕。只能外链个了
效果图>>>



 楼主| 发表于 2012-8-27 14:58:02 | 显示全部楼层

这是数据表结构
 楼主| 发表于 2012-8-27 21:34:34 | 显示全部楼层
牛逼吹大了,排序有问题...再改...
发表于 2012-8-29 16:01:57 | 显示全部楼层
{:soso_e100:}加油 楼主!同时求JQuery实现树形结构的代码示例!!
发表于 2012-8-31 21:02:19 | 显示全部楼层
楼主加油
 楼主| 发表于 2012-9-3 16:15:43 | 显示全部楼层
放心,我还会回来的,,,,等我好消息
 楼主| 发表于 2012-9-3 16:26:51 | 显示全部楼层
1、要加1个字段作分层级,我以为这个需要,反复观察用这个确实方便。
  c_level字段形类: 0|2|5|

2、在读取的时候,稍作更改:
  $query = $this->db->order('c_level, cpx')->get('category');

//以层级和排序为顺序读取出来。
//工作忙,暂不提供代码了
发表于 2012-9-11 10:24:06 | 显示全部楼层
学校了楼主!
发表于 2012-9-22 11:56:25 | 显示全部楼层
支持一下楼主
发表于 2012-10-8 13:22:10 | 显示全部楼层
啥都不说,,,先祝贺楼主

本版积分规则