【发布时间】:2011-11-22 20:55:04
【问题描述】:
我正在寻找动态创建复杂导航元素的最佳方式。我拥有数据库中的所有元素(标题、id、parentId),我想有效地将它们从数据库中取出并正确显示。我还想折叠所有不活动的导航元素。因此,如果我浏览“沙发”,我不会看到“吊灯”或照明下的任何类别,但会看到“照明”。
这就是我希望最终产品的样子:
- 家具
- 客厅
- 沙发
- 椅子
- 奥斯曼人
- 卧室
- 床
- 床头柜
- 客厅
- 照明
- 吊灯
- 落地灯
- 壁灯
- 地毯和纺织品
- 当代
- 复古
我目前的方法是
- 编写一个 SQL 查询来拉取所有类别名称、ID 和父 ID
- 遍历类别并将子类别存储在其父类别下的排序多维数组中。
- 遍历新数组并添加另一个条目以将相应的类别标记为打开(所有类别默认关闭)
- 遍历数组并编写 HTML
我正在尝试通过尽可能少的交互来实现这一点,并且我确信我现在拥有的代码效率低下。特别是第 2 步,我多次遍历数组。这个(常见的?)问题必须有一个通用的解决方案。
【问题讨论】:
-
在创建多维数组时,为什么不在第二次迭代中将相应的类别标记为打开?
-
您使用的是 JavaScript 还是其他一些客户端逻辑?如果没有,那么您看不到的东西将无法打开,并且没有理由获取/处理该信息......
标签: php mysql navigation