Есть ли в PHP древовидное представление с данными из базы данных? - PullRequest
1 голос
/ 22 января 2010

Я хочу знать, существует ли php treeview с данными из mysql. Я не нашел suitalbe один для моего проекта. Вы знаете, есть ли там какие-нибудь плагины или примеры кода?

Большое спасибо.

Edit:

Асинхронный пример jQuery Treeview, текст ссылки

Я обнаружил, что это может работать, но я не знаю, как получить source.php. У вас есть идеи или другие предложения?

Ответы [ 2 ]

2 голосов
/ 22 января 2010

вам нужно будет выполнить запрос самостоятельно, но это довольно просто. вывод, который ожидает дерево, представляет собой массив объектов в формате json, как в примере ниже.

ваша структура таблицы может быть:

tree_node (id, title, parent_id)

Вы бы выбрали корневой узел, а затем его дочерние элементы, до тех пор, пока дерево не будет завершено.

function expandTree($node)
{
  $result = array('text' => $node['title'], 'children' => array());
  $nodes = getChildren($node);  // query all nodes whose parent_id = $node['id']
  foreach ($nodes as $node) {
    $result['children'][] = expandTree($node);
  }
  return $result;
}

выходной формат:

[
{
    "text": "1. Pre Lunch (120 min)",
    "expanded": true,
    "classes": "important",
    "children":
    [
        {
            "text": "1.1 The State of the Powerdome (30 min)"
        },
        {
            "text": "1.2 The Future of jQuery (30 min)"
        },
        {
            "text": "1.2 jQuery UI - A step to richnessy (60 min)"
        }
    ]
},
{
    "text": "2. Lunch  (60 min)"
},
[...]
1 голос
/ 27 января 2010

Если у вас есть БД с родителями и детьми, взгляните на

http://www.ideashower.com/our_solutions/create-a-parent-child-array-structure-in-one-pass/ & http://www.phpriot.com/articles/nested-trees-1

После того, как вы правильно отсортировали данные, вы можете посмотреть их рендеринг.

...