Когда вы строите древовидную структуру, важно использовать рекурсивные функции.Вы никогда не должны строить функцию по глубине в дереве.
Возврат необработанного запроса с сервера клиенту, так как текст немного грубоват.Я бы предложил поместить ваш запрос в JSON или XML, чтобы использовать имеющиеся инструменты для этого.Нет смысла вручную анализировать текстовые ответы обратно в структуры данных.
В передовых практиках база данных (контент) и клиент (представление) никогда не общаются друг с другом напрямую.Вот почему вы не нашли никакой полезной информации о том, как это сделать.
После того, как вы определили свою среду разработки, такую как запуск сервера LAMP (Linux, Apache, MySQL, PHP), мы можем двигатьсяПерейдем к решению самой структуры данных, хранящейся в таблице:
ID | Parent | Type | Name | Target
1 | 0 | Folder | "Root" | null
2 | 1 | Document | "Read Me" | "SomePath/Readme.txt"
3 | 1 | Folder | "My Documents" | "SomePath/My_Documents/"
4 | 3 | Document | "Black Book" | "SomePath/My_Documents/Black_Book.txt"
Я не администратор баз данных, но если вы посмотрите на столбец «Родитель», вы увидите, что любой узел может иметь дочерний элемент, поэтому используйте бизнес-логику, чтобы предотвратить нежелательные события, такие как документ, имеющий ребенка.Кто знает, может быть, ваша бизнес-логика заключается в том, чтобы разрешить документу иметь ассоциированные дочерние элементы типа-> Разрешения.В любом случае, не путайте древовидную логику с бизнес-логикой.
Теперь ваш результат запроса больше похож на древовидный запрос.У вас есть 3 типичных варианта:
1) Пропустите его через шаблон на стороне сервера и выведите HTML на клиент для рендеринга.2) Оценить запрос в дерево XML и передать его шаблону на стороне клиента.3) Оцените запрос в объект JSON и передайте его шаблону на стороне клиента.
После того, как все эти вещи выбиты, мы можем обратиться к последней части уравнения, прикрепив ответ кDOM.
$('someLocation').append(response);
Я предлагаю сейчас использовать генерацию шаблонов на стороне сервера.Он самый старый и имеет многолетнюю документацию.