В этой статье приведу пример реализации древовидного меню на JavaScript с помощью PHP.
В своей практике много раз сталкивался с тем, что такое меню нужно, но человек затрудняется соединить скрипт на PHP с меню скриптом на JavaScript.
Для примера возьмём бесплатный скрипт для отображения древовидного меню Tigra Tree Menu, который поддерживается: MS IE, Netscape на платформах Windows 95/98/ME/2000/XP и Mac OS 8/9/X по адресу http://www.softcomplex.com/products/tigra_tree_menu/
Скачав и распаковав архив, мы увидим 3 яваскриптовых файла:
tree.js (сам скрипт отображения и формирования меню), tree_tpl.js(настройки самого меню и картинок к нему), а также
tree_items.js (сама структура меню), который нам и нужно заменить на PHP скрипт, который возьмёт наши данные из базы.
Создайте таблицу в базе данных:
id - идентификатор пункта меню;
pid - принадлежность к ветке меню (если, например, pid = 12, значит, этот пункт является подуровнем пункта, у которого id = 12);
name - название самого пункта меню.
Ну, и заполним немного данными для демонстрации:
Далее соединимся с базой данных и напишем рекурсивную функцию для формирования такой структуры, как в файле tree_items.js.
Пишем саму функцию:
Теперь в нужном нам месте выводим сформированное меню:
P.S. Для того, чтобы меню работало, не забудьте на странице, сразу после тега < body >, вставить нужные скрипты "Tigra Tree Menu":
Ну вот и всё. Надеюсь, что кому-нибудь это пригодится.
Нет уважаемая Моra, вы не правильно поняли. Вместо файла tree_items.js мы создаем не html файл, а php-файл, содержащий вышеприведенный код и строки подключающие скрипты tree.js и tree_tpl.js(например index.php). Механизм действия - при переходе по адресу http//..../index.php подключаюся файлы javascript, выполняется функция get_tree, которая берет информацию из базы и выводит ее функцией print.
Здравствуйте Admin!
Большое спасибо за пример он как раз то что я искала
Я тоже новичек и мне немножко не понятны некоторые моменты- помогите пожалуйста
правильно ли я поняла вместо файла tree_items.js создаем html файл
потом тут же вставляем функцию?
в body подключаем 2 оставшихся скрипта и в табличке выводим результат закрывае body
все
я наверное что то не то сделала потому что у меня пустую страничку выводит
подключаемся к базе через (script language="php")
Я думаю данный пример не подходит для решения конкретно вашей задачи. Подобные задачи нужно решать используя связку PHP и библиотеку jQuery или еще лучше использовать чистый Ajax не прибегая к использованию сторонних библиотек. Что такое Ajax и с чем его едят можно прочесть тут.
Рекомендовал бы начать свое знакомство с технологией Ajax с этой книги.
Я начинающий, ваш пост показался мне решением стоящей передо мной задачи, т.к. здесь речь идет о совмещении php и javascript, а я как раз реализую галерею по альбомам-категориям, и хотелось бы доставать эти альбомы с вложенными в них миниатюрами картинок из базы в цикле.
В связи с этим вопрос, скорее просьба - ПОЖАЛУЙСТА, выложите или отправьте мне на маил архив рабочего примера того, что вы здесь написали. Я не понял ключевых моментов. Создал в базе таблицу menu, занес в нее все, как написано, вставил php скрипт, но ничего не работает(((((((((((( Помогите, пожалуйста. Заранее СПАСИБО!!!