Генератор форм

Для веб-мастера

Реклама

Комментарии к статье:
Построение иерархического дерева. Рекурсивная функция.

Дата: 4 июля 2010 Просмотры 34756 Комментарии 12

    Получать новые материалы этого сайта на свой email адрес?

    Отправлять мне комментарии по эл. почте?

MaliciousMice
MaliciousMice 11 августа 2010 | 18:31
0
Функция дерево показывает отлично, но только что делать с варнингами, которые возникают при обращении к несуществующим элементам массива - отключить предупреждения не предлагать
MaliciousMice
MaliciousMice 11 августа 2010 | 18:48
+2
Кажется нашол решение.
Нужно
if(is_array($cats) and count($cats[$parent_id])>0)
заменить на
if(is_array($cats) and isset($cats[$parent_id]))
тогда варнингов нет, т.к. к несуществующему элементу массива функция больше не обращается!!!
Val
Val 17 ноября 2010 | 17:48
-4
Растолкуйте, пожалуйста, подробней , как для тупого, а то у меня пустая страница получается.. Спасибо!!
okeator
okeator 16 декабря 2010 | 14:20
+3
Val, попробуйте что-то типа
echo build_tree($cats,0);
вставить в тело страницы перед закрыванием php
:)
okeator
okeator 16 декабря 2010 | 14:25
+1
Иван, спасидо за статью! Помогла кое в чем разобраться...
Евгений
Евгений 23 января 2011 | 01:23
0
Спасибо Вам большое
Роман
Роман 27 августа 2011 | 21:51
+4
Если есть необходимость использовать объект select, то предлагаю такое решение. Добавляется поле is_group в таблицу, которое означает, имеет ли объект дочерние объекты, а функцию build_tree немного видоизменить:
function build_tree($hs, $p_id) {
if (is_array($hs) and isset($hs[$p_id])) {
$tree = '';
foreach($hs[$p_id] as $item) {
if ($item['is_group'] == 1)
$tree .= '<option value="'.$item['id'].'">'.$item['title_int'];
else
$tree .= '<option value="'.$item['id'].'">   '.$item['title_int'];
$tree .= build_tree($hs, $item['id']);
$tree .= '</option>';
};
//$tree .= '</ul>';
}
else return null;
return $tree;
};
Новичок
Новичок 18 апреля 2012 | 18:59
+1
Подскажите, как сделать так, чтобы когда создастся дерево можно было по нему переходить как по ссылках? То есть, чтоб каждая ветка была ссылкой на новую страницу
Dima
Dima 26 апреля 2012 | 17:31
0
Здраствуйте,
а как сделать чтобы дерево выводило в броузер?
тоесть как вывести даный скрипт в хтмл документе?

спасибо
Шамшур Иван
Шамшур Иван 26 апреля 2012 | 22:24
+2
<?php echo build_tree($cats,0); ?>

Где $cats - подготовленный массив категорий. О том, как его сформировать, читайте в статье.
Molinero
Molinero 19 октября 2012 | 16:36
+2
Большое спасибо за скрипт. Успешно внедрил в свои сайты.
theAVA
theAVA 6 января 2013 | 02:40
0
а как такое сделать на 2 таблицы mysql?

Простая CRM