使用 MySQL 数据库创建一棵树,为什么 Jstree 出问题了?

我想从MySQL数据库创建一棵树,问题是在创建的过程中,Jstree出问题了。这是我的代码: $(document).ready(function(){ $("#treeViewDiv").jstree({

                "json_data" : {

                    "ajax" : {
                        // the URL to fetch the data
                        "url" : "myfolder/getData",

                        "data" : function (n) {
                            // the result is fed to the AJAX request `data` option
                            return {
                                "operation" : "get_children",
                                "id" : n.attr ? n.attr("id").replace("node_","") : 1
                            };
                        }
                    }
                },

我得到的数据:

    public function listAll(){       
    $q = <<<QRY
    SELECT
    id, title,lft,rgt
    FROM $this->dbname.my_table_name
    ORDER BY lft ASC
    QRY;

以及:

    $sourcesRepo = new myclassRepository($this->get('database_connection'), 'mydbname');

    $pages   = $sourcesRepo->listAll();


    $return=array(
        'pages' => $pages,
    );
    return $this->query($q);

有人能帮忙吗?问题是什么?

看起来你在使用 jQuery 的 jstree 插件来创建树形结构。如果我理解正确的话,你的代码是在尝试从 MySQL 数据库中的表中获取数据,然后使用这些数据来初始化树形结构。


那么导致 jstree 出问题的可能原因有很多。比如,jstree 不能正确处理返回的数据,或者有 JavaScript 错误导致页面崩溃。


为了找出问题所在,你可以尝试以下步骤:

  • 在浏览器的控制台中检查是否有 JavaScript 错误。
  • 确保你正在使用最新版本的 jstree 插件。
  • 尝试使用更多的调试信息,比如在 jstree 初始化时使用 "debug" : true 选项,或者在浏览器的控制台中使用 jstree 提供的调试方法。
  • 尝试打印出返回的数据,确保它满足 jstree 所需的数据格式。jstree 要求数据必须包含 id、text 和 children 属性,所以你需要确保你的数据中有这些属性。
  • 如果问题依旧存在,尝试缩小问题的范围,比如先只使用少量数据来初始化树形结构,然后一步一步地增加数据,看看哪一步导致了问题的出现。