Долгое время читатель, первый постер:)
У меня есть приложение, которое имеет древовидную структуру всех наших клиентов / проектов. Для каждого клиента у вас может быть несколько проектов и, кроме того, несколько сайтов, несколько зданий, например,
Все это отношения один ко многим, поэтому я думаю, что идеально подходит для дерева. Данные хранятся в MySQL.
Древовидное представление заполняется с помощью jQuery Ajax-запроса при загрузке страницы. У меня есть контекстное меню, в котором я могу щелкнуть правой кнопкой мыши и выбрать новый сайт, который запускает Ajax-запрос к файлу PHP, который добавляет новый сайт в базу данных mySQL. Затем он обновляет древовидную структуру после успешного выполнения первого Ajax-запроса, а затем связывает функцию сворачивания переключателя.
Всякий раз, когда происходит обновление, все ветви разрушаются из-за того, что PHP-файл проходит через вложенные циклы while и получает все данные списка с нуля. Это приводит к тому, что class = "close" читается для всех элементов [li].
Я хочу, чтобы ветки рухнули так, как они были до ajax, SQL и обновления.
Без создания массивов всех свернутых ветвей я не могу вернуть это к последнему известному состоянию.
Я думал о разбиении дерева на разделы, например, если добавлен новый сайт, тогда я обновляю список сайтов только с помощью запроса ajax, поскольку PHP не нравится синтаксис, потому что мои вложенные циклы while требуют закрывающих скобок .
Я убежден, что есть более разумный способ сделать это, которого мне не хватает. Может быть, мне следует встроить данные SQL в массив PHP, а затем создать ветви дерева отдельно?