[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: рекурсивный вывод категорий и подкатегорий
yintar
Всем привет!!!
На странице рекурсивно вывожу категории и подкатегории с помощью функции view_cat($result); В переменной $result содержится выбранные и отсортированные по ключу parent_id категории.т.е. здесь все стандартно.
код функции view_cat($result):

function view_cat($arr, $parent_id = 0) {

if (empty($arr[$parent_id])) {
return;
}
echo '<ul>';
foreach ($arr[$parent_id] as $value) {
echo '<li><a id='.$value['id'].' href="?category_id=' . $value['id'] .'&parent_id=' . $parent_id .'">' . $value['title'] . "</a>"."</li>";
echo '<div style=display:none class="category'.$value['id'].'" parent_id="'.$parent_id.'">';
view_cat($arr, $value['id']);
echo '</div>';
}
echo '</ul>';
}

В функции view_cat($result) формируется html код и пользователю видны только те категории у которых parent_id=0,а все дочерние скрыты т.к. формируется div style=display:none
Мне надо чтобы когда пользователь кликнул на категорию под ней показывались скрытые подкатегории.Для этого написал небольшой скрипт:


<script type="text/javascript">
$('a').click(function() {
var category_id = ($(this).attr('id'));
$('.category' + category_id).removeAttr('style');
});
</script>

т.е. при клике на категорию у нее удаляется атрибут style=display:none и ее подкатегории становятся видимыми.
Но есть проблема,видимыми подкатегории становятся недолго т.к. сразу же вызывается функция view_cat($result) и опять всем подкатегориям возвращается свойство style=display:none.Т.е. проблема в том,что html код формируется на сервере в функции view_cat($result) и по-любому возвращается при вызове функции.А если формировать html код на клиенте а категории выводить с помощью циклов то не получается вывод всех уровней вложенности потому,что необходима рекурсивная функция.
Подскажите пожалуйста как решить или обойти данную проблему
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.