2010-01-21 43 views
0

我想在PHP中使用MySQL数据库中的动态填充树视图。我已经搜索了很多,但我还没有得到解决方案(jQuery的TreeView似乎不工作在我的上下文中)。Dynamic Treeview PHP

我想知道的是,我通过单击“+”符号来扩展树形视图。

当我单击树形视图的项目时,它将执行查询并将结果显示在同一页面中。

你知道如何实现它吗?

在此先感谢。

+0

你能详细说明为什么jQuery treeview不起作用吗? – Daff 2010-01-21 17:38:23

+0

@Daff,我想让jQuery treeview从数据库中获取数据,但至今我找不到它。然后,我需要通过单击树的项目进行查询。你知道怎么做吗? – 2010-01-22 08:43:22

回答

1

试用<ul><li>嵌套。如果级别> 1,用CSS隐藏并添加+元素。随着JavaScript添加活动+这将告诉你这个附近的<ul>容器。

编辑:

<ul> 
    <li> 
    <a href="#">+</a> 
    Element A 
    <ul class="hide"> 
     <li>Subelement AA</li> 
     <li>Subelement AB</li> 
     <li>Subelement AC</li> 
    </ul> 
    </li> 
    <li>Element B</li> 
    <a href="#">+</a> 
    Element C 
    <ul class="hide"> 
     <li>Subelement CA</li> 
     <li> 
     <a href="#">+</a> 
     Subelement CB 
     <ul class="hide"> 
      <li>Subelement CBA</li> 
      <li>Subelement CBB</li> 
      <li>Subelement CBC</li> 
      <li>Subelement CBD</li> 
     </ul> 
     </li> 
     <li>Subelement CC</li> 
    </ul> 
    <li>Element D</li> 
</ul> 
+0

我没有实现它,你能解释更多吗?我不知道如何添加“+”元素。 – 2010-01-22 08:34:26

0

我有我的定制CMS此功能。

我有一个简单的查询数据库和使用递归的PHP函数。传递给这个函数的第一个参数是父,缺省值为0

所以,当函数被调用时,它查询数据库与0

父值的所有页面时对结果循环设置,函数检查是否有任何页面具有该页面ID的父值。如果是这样,它会启动一个新列表并提取该特定页面的子项的记录。

上面设置了一个递归函数,它输出一个多级<ul>。然后,我使用jQuery插件将此列表转换为文件树,并使用+/-图标来切换分支和文件类型图标。

我希望这会有所帮助。

+0

@Martin,谢谢,我认为这是个好主意。但我在这里做的是在数据库中进行查询,并将结果集返回到同一页面。其实,我理解你的答案有点困难。 – 2010-01-22 08:47:02

+0

我刚刚重读了原来的问题。你是否说你想用AJAX延迟加载树枝?就减少初始页面加载量而言,这是个不错的主意,但它有什么好处?禁用JavaScript的用户呢,或者脚本超时会发生什么情况? – 2010-01-22 09:20:42

+0

@thanks,我想用AJAX延迟加载树,因为我需要它是动态的。我还没有考虑不支持JavaScript的条件。你有什么退化计划? – 2010-01-22 10:57:23