PHP, Treeview, Ajax - не может сохранить состояние открытых веток / узлов - PullRequest
0 голосов
/ 07 марта 2012

Долгое время читатель, первый постер:)

У меня есть приложение, которое имеет древовидную структуру всех наших клиентов / проектов. Для каждого клиента у вас может быть несколько проектов и, кроме того, несколько сайтов, несколько зданий, например,

Все это отношения один ко многим, поэтому я думаю, что идеально подходит для дерева. Данные хранятся в MySQL. Древовидное представление заполняется с помощью jQuery Ajax-запроса при загрузке страницы. У меня есть контекстное меню, в котором я могу щелкнуть правой кнопкой мыши и выбрать новый сайт, который запускает Ajax-запрос к файлу PHP, который добавляет новый сайт в базу данных mySQL. Затем он обновляет древовидную структуру после успешного выполнения первого Ajax-запроса, а затем связывает функцию сворачивания переключателя.

Всякий раз, когда происходит обновление, все ветви разрушаются из-за того, что PHP-файл проходит через вложенные циклы while и получает все данные списка с нуля. Это приводит к тому, что class = "close" читается для всех элементов [li].

Я хочу, чтобы ветки рухнули так, как они были до ajax, SQL и обновления.

Без создания массивов всех свернутых ветвей я не могу вернуть это к последнему известному состоянию. Я думал о разбиении дерева на разделы, например, если добавлен новый сайт, тогда я обновляю список сайтов только с помощью запроса ajax, поскольку PHP не нравится синтаксис, потому что мои вложенные циклы while требуют закрывающих скобок .

Я убежден, что есть более разумный способ сделать это, которого мне не хватает. Может быть, мне следует встроить данные SQL в массив PHP, а затем создать ветви дерева отдельно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...