如何在codeigniter中创建一个树

时间:2015-07-01 15:34:22

标签: mysql twitter-bootstrap codeigniter tree

嘿,我在codeigniter中有一个项目,我希望使用bootstrap和jquery在视图中显示数据。我的数据就像这样

1
11
12
13
131
132
2
3
4
5

我希望在视图中显示数据。该数据来自数据库,因此我希望在视图中使用foreach来显示该数据。这里的任何人如何使数据显示为树,假设数据length是树的级别

1           -> level 1
   11       -> level 2
   12       -> level 2
   13
     131    -> level 3
     132
2           -> level 1
3
4
5

也许数据可以像文件浏览器一样显示,我想询问如何制作或教程。因为我很困惑如何使数据显示如此

这是我在模型

中的代码
    function get_family($id_parent){
    $this->db->select('*');
    $this->db->from('user');
    $this->db->like('id',$id_parent,'after');
    $user = $this->db->get();

    return $user->result_array();
}

i want tree minimal like this

1 个答案:

答案 0 :(得分:0)

首先,您的sql表user应至少包含3列: idparent_idname

接下来,我建议您在application/libraries目录中创建自己的库类(例如Tree_library)。

此lib应遵循以下基本概念:

图书馆类:

class Tree_library {
    private $tree = [];
    private $separator = "-";
    private $output = "";

    public function __construct() {}
    public function build($tree) {}
    public function getTreeAsString(){}

    protected function _recursive_iterator($tree) {}
    protected function _get_childs($parent_id) {}
}

在你的conroller方法中,你将加载这个lib并传递给模板

conroller:

$this->load->library('parser');
$this->load->library('Tree_library');

// we gets root users because they have NULL in their parent_id in sql table
$root_users = get_family(NULL);

$this->tree_library->build($root_users);

$data = array(
    'TREE' => $this->tree_library->getTreeAsString()
);

$this->parser->parse('template', $data);

模板:

<div class="tree">{TREE}</div>