嘿,我在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();
}
答案 0 :(得分:0)
首先,您的sql表user
应至少包含3列:
id
,parent_id
,name
。
接下来,我建议您在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>