Как учесть структуру наследования при построении сортируемого дерева в табличной форме?
Всем Доброго дня! Делаю пет проект, нужно выводить структуру сотрудников в древовидном формате. Я использую для этого табличное представление django-tables2. Далее нужна возможность сортировки drug and drop. Нашел SortableJS, подключил, но при перетаскивании не знаю как сделать, что бы учитывалась структура родитель-потомок. Если у нода есть потомки, тянем вместе с ними. Если у нода потомков нет, соответвено только он. У SortableJS есть опция Nested, но как ее прикрутить к своей существующей таблице не знаю. Пробовал по всякому, но корректно она отрабатывает только со структурами на div тегах. Собственно я в тупике). Подскажите пожалуйста, что можно предпренять, может быть выбрать другой инструмент?
Примерна структура и то, что есть сейчас:
https://jsbin.com/geqonosaqa/edit?html,js,output
Дополнительно:
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для учета структуры наследования при построении сортируемого дерева в табличной форме, вам необходимо учитывать иерархию объектов и их связи.
Один из способов реализации такого дерева - использование рекурсивной структуры данных. Для каждого объекта вы можете создать класс или структуру, который будет содержать информацию об объекте (например, название, тип и т.д.) и массив дочерних объектов. Таким образом, вы можете построить древовидную структуру, где каждый объект может иметь несколько дочерних объектов.
Пример реализации на PHP:
class Node { public $name; public $children = []; public function __construct($name) { $this->name = $name; } public function addChild(Node $child) { $this->children[] = $child; } } // Создаем объекты $parent = new Node('Parent'); $child1 = new Node('Child 1'); $child2 = new Node('Child 2'); // Строим иерархию $parent->addChild($child1); $parent->addChild($child2);
Теперь у вас есть структура данных, которая отражает иерархию объектов с учетом наследования. Для отображения этой структуры в табличной форме, вы можете использовать рекурсивную функцию, которая будет обходить каждый узел дерева и строить таблицу.
Пример реализации вывода таблицы на PHP:
function printTable($node, $indent = 0) {echo str_repeat('-', $indent) . $node->name . "