bootstrap Treeview 树形结构 无限极二维数组层…
2018-12-25 08:22:19来源:博客园 阅读 ()
1 private function getArea(){ 2 $post_data = array(); 3 $result = $this->send_post('请求数据地址/?msgid=121&authkey=webuser&accountid='.$_SESSION['id'].'&projectid='.$_SESSION['projectid'].'',$post_data); 4 $volist = json_decode($result,true); 5 6 // 这一段应该是很通俗的,就是构建一个新的数组,新数组的key值是自己的主键id值进行完这一步之后 这步很重要 7 $items = array(); 8 foreach($volist['regions'] as $v){ 9 $items[$v['id']] = $v; 10 } 11 12 14 15 16 # 第一步先简化数组 只要直接想要的几个字段 我这里需要 不需要的可以不用 17 $newData = array(); 18 foreach($items as $ke=>$it){ 19 $newData[$ke]['id'] = $it['id']; 20 $newData[$ke]['text'] = $it['name']; 21 $newData[$ke]['parentid'] = $it['parentid']; 22 $newData[$ke]['projectid'] = $it['projectid']; 23 $newData[$ke]['projectname'] = $it['projectname']; 24 } 25 26 # 第二步 27 # 先找到这个新数组中有没有这个key 如果没有 28 $tree = array(); 29 foreach($newData as $k => $item){ 30 // 其实这里 "$newData[$item['parentid']]" 就是newData的下标,上面已经把每条信息的 id改成了自己的key 因为id= parentid 31 // 找到原数组 中上下关系字段 如果是0 肯定是false 则就是顶级 32 if(isset($newData[$item['parentid']])){ 33 $newData[$item['parentid']]['nodes'][] = &$newData[$k]; 34 // 若不为真 把这条数据拿到key等于这条数据的parentid的下面 自定义下标名称并且多加一个"[]"万一这个id下面的子类有多个 35 }else{ 36 $tree[] = &$newData[$k]; // 顶级 37 } 38 } 39 echo json_encode($tree);
40 }
// 结果 我这里数据有点少 但是基本上看的清楚 如果还有 子类 孙子类 都会追加到相应的父类后面
1 2 array(3) { 3 [0] => array(6) { 4 ["id"] => int(49) 5 ["text"] => string(12) "车身车间" 6 ["parentid"] => int(0) 7 ["projectid"] => int(16) 8 ["projectname"] => string(12) "南京大通" 9 ["nodes"] => array(1) { 10 [0] => array(5) { 11 ["id"] => int(75) 12 ["text"] => string(3) "456" 13 ["parentid"] => int(49) 14 ["projectid"] => int(16) 15 ["projectname"] => string(12) "南京大通" 16 } 17 } 18 } 19 [1] => array(6) { 20 ["id"] => int(50) 21 ["text"] => string(12) "冲压车间" 22 ["parentid"] => int(0) 23 ["projectid"] => int(16) 24 ["projectname"] => string(12) "南京大通" 25 ["nodes"] => array(1) { 26 [0] => array(5) { 27 ["id"] => int(78) 28 ["text"] => string(3) "666" 29 ["parentid"] => int(50) 30 ["projectid"] => int(16) 31 ["projectname"] => string(12) "南京大通" 32 } 33 } 34 } 35 [2] => array(5) { 36 ["id"] => int(82) 37 ["text"] => string(12) "总装车间" 38 ["parentid"] => int(0) 39 ["projectid"] => int(16) 40 ["projectname"] => string(12) "南京大通" 41 } 42 }
前台展示
1 <link rel="stylesheet" type="text/css" href="css/pagination.css" media="screen"> 2 <div class="ibox-content" style="height:500px"> 3 <div id="treeview5" class="test"></div> 4 </div>
1 // 活数据 页面只需引入js 2 <script src="js/plugins/treeview/bootstrap-treeview.js"></script> 3 # 页面显示 ajax获取转换后的数据 4 var defaultData=''; 5 $(function () { 6 $.ajax({ 7 type: 'POST', 8 url: '__URL__/getArea', 9 async: false, 10 dataType: 'json', 11 success: function (d) { 12 defaultData = d; 13 } 14 }); 15 16 17 # 显示在指定位置 18 $('#treeview5').treeview({ 19 levels: 4, // 这里设置树形结构 默认展开几层 20 color: "#428bca", 21 expandIcon: 'glyphicon glyphicon-chevron-right', 22 collapseIcon: 'glyphicon glyphicon-chevron-down', 23 nodeIcon: '', 24 showTags: false, 25 data: defaultData, 26 }); 27 });
效果: 图一开始忘记上了 后加的!效果就是这个效果
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:js正则表达式之人民币匹配
- BootStrap 标题设置跨行无效的解决方法 2020-01-17
- 详解bootstrap table表格的使用方法 2019-12-14
- BootStrap使用file-input插件上传图片的方法 2019-09-08
- jqgrid three 树形结构 2019-04-29
- bootstrap-treeview + angular 使用 2019-03-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash