将列表显示为二叉树

时间:2016-01-15 06:26:45

标签: javascript binary-tree

我想绘制二叉树,但事情是我找不到任何正确的javascript插件。我已经google了很多javascript插件,但找不到任何可以帮助我和我找到的没有很多文档。

我检索二进制树,每个记录都知道它的父亲是谁以及他们在哪一边。该数据被编码为json并发送回ajax调用。我想在这些数据上绘制二进制文件。任何人都可以告诉我任何可以帮助我做这件事的插件

  

id | user_id | parent_id | side | depth | created_at |的updated_at

我的数据以json形式返回。现在在这里,我有他们所在的侧面,父ID告诉用户是它的父母。现在数据以json形式返回,它有一个数组,每个索引都有一个对象,格式是我在块引号中给出的。现在我想要一个jquery库,它接收用户id,以及在其中显示的内容以及它们的父节点是父节点以及它们位于哪一侧的父节点

1 个答案:

答案 0 :(得分:0)

我找到了制作这种二叉树的解决方案。阅读此答案的任何人都可以使用谷歌组织结构图,这里是链接Google Organization Chart

$(document).ready(function(){
            google.charts.load('current', {packages:["orgchart"]});
            google.charts.setOnLoadCallback(drawChart);
             function drawChart() {

                var data = new google.visualization.DataTable();
                data.addColumn('string', 'id');
                data.addColumn('string', 'Manager');
                data.addColumn('string', 'toolTip');

                data.addRows([
                    <?php foreach($data as $values): ?>

                        [value, parent, ""],
                    <?php endforeach; ?>
                ]);
                // Create the chart.

                var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));
                chart.draw(data, {allowHtml:true});
            }
        });

当你尝试打印时最后一件事,因为我使用php我遇到了一个错误,根父母没有孩子所以它没有打印任何东西所以对于所有php开发人员你可以在parent参数中执行此操作

"<?php echo isset($values['something']) ? $values['something'] : '';  ?>"

并且在我的情况下最后一件事是一切都是字符串所以我不得不将值等封装在引号中

希望此解决方案有所帮助

我忘了的一件事就是记住节点是否只有一个孩子,然后它不会在左边或右边显示,而是以直线显示。根据我的知识,这是唯一缺乏的东西