отобразить определенную ветку и скрыть остальные (jstree) - PullRequest
0 голосов
/ 23 сентября 2019

Прежде всего, спасибо за ваш вклад.Я использую JStree с PHP и Mysql, и я хочу отобразить определенную ветку (я объясняю, я хочу использовать ее как меню, и у каждого пользователя есть свой собственный список) Я новичок в Jquery и не знаю, как использоватьили измените его.еще раз спасибо enter image description here

Я использую код vakarta avec class.tree.php и class.db.php

$('#tree')
            .jstree({
                'core' : {
                    'data' : {
                        'url' : '../php/TreeEvent.php?operation=get_node',
                        'data' : function (node) {
                            return { 'id' : node.id };
                        }
                    },
                    'check_callback' : true,
                    'themes' : {
                        'responsive' : false,
                        "rtl": true,
                        "theme" : "default-rtl",
                        "icons" : true
                    }
                },

                'force_text' : true,
                'plugins' : ['state','dnd','contextmenu','changed']
            })

le код PHP

if(isset($_GET['operation'])) {
$fs = new tree(db::get('mysqli://root:mdp@127.0.0.1/db_test'), array('structure_table' => 'tree_struct', 'data_table' => 'tree_data', 'data' => array('nm')));
    try {
    $rslt = null;
    switch($_GET['operation']) {
        case 'analyze':
            var_dump($fs->analyze(true));
            die();
            break;
        case 'get_node':
            $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0;
            $temp = $fs->get_children($node);
            $rslt = array();
            foreach($temp as $v) {
                $rslt[] = array('id' => $v['id'], 'text' => $v['nm'], 'children' => ($v['rgt'] - $v['lft'] > 1));
            }
            break;
        case "get_content":
            $node = isset($_GET['id']) && $_GET['id'] !== '#' ? $_GET['id'] : 0;
            $node = explode(':', $node);
            if(count($node) > 1) {
                $rslt = array('content' => 'Multiple selected');
            }
            else {
                $temp = $fs->get_node((int)$node[0], array('with_path' => true));
                $rslt = array('content' => '->' . implode('/',array_map(function ($v) { return $v['nm']; }, $temp['path'])). '/'.$temp['nm']);
            }
            break;
...