0
A
回答
1
下面是一篇描述它的博客文章:http://crisp.tweakblogs.net/blog/317/formatting-a-multi-level-menu-using-only-one-query.html然后,您只需使用CSS即可显示/隐藏子菜单。
1
可以先创建一个这样
CREATE TABLE `dyn_menu` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`label` VARCHAR(50) NOT NULL DEFAULT '',
`link_url` VARCHAR(100) NOT NULL DEFAULT '#',
`parent_id` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
Prepare your DB
$sql = "SELECT id, label, link_url, parent_id FROM dyn_menu ORDER BY parent_id, id ASC";
$items = mysql_query($sql);
while ($obj = mysql_fetch_object($items)) {
if ($obj->parent_id == 0) {
$parent_menu[$obj->id]['label'] = $obj->label;
$parent_menu[$obj->id]['link'] = $obj->link_url;
} else {
$sub_menu[$obj->id]['parent'] = $obj->parent_id;
$sub_menu[$obj->id]['label'] = $obj->label;
$sub_menu[$obj->id]['link'] = $obj->link_url;
$parent_menu[$obj->parent_id]['count']++;
}
}
mysql_free_result($items);
Write The Function
function dyn_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "subnav", $extra_style = "foldout") {
$menu = "<ul id=\"".$main_id."\">\n";
foreach ($parent_array as $pkey => $pval) {
if (!empty($pval['count'])) {
$menu .= " <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";
} else {
$menu .= " <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n";
}
if (!empty($_REQUEST[$qs_val])) {
$menu .= "<ul id=\"".$sub_id."\">\n";
foreach ($sub_array as $sval) {
if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent']) {
$menu .= "<li><a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\">".$sval['label']."</a></li>\n";
}
}
$menu .= "</ul>\n";
}
}
$menu .= "</ul>\n";
return $menu;
}
那表是有乐趣
相关问题
- 1. MVC4动态菜单生成
- 2. 动态生成菜单项
- 3. 动态生成的bash菜单
- 4. TMainMenu生成菜单项动态
- 5. 动态生成菜单 - 两个阵列
- 6. 动态生成菜单文件名
- 7. 使用webservices动态菜单生成
- 8. 动态生成水平菜单
- 9. 从对象生成菜单动态angularjs
- 10. 动态生成菜单的ViewState错误
- 11. 从菜单生成的PHP菜单
- 12. PHP动态菜单
- 13. PHP“动态”菜单
- 14. 蛋糕PHP菜单生成
- 15. PHP $ _ POST从动态生成的表单
- 16. php处理动态生成的表单
- 17. php中的动态表单生成器
- 18. 如何将动态生成的Drupal菜单转换为静态菜单?
- 19. PHP动态下拉菜单
- 20. 动态下拉菜单 - PHP
- 21. 动态PHP UL菜单
- 22. php/mysql动态菜单
- 23. 动态嵌套菜单php
- 24. Javascript动态生成的选择菜单在POST中未被php看到
- 25. 在动态生成的菜单中获取SelectedItem的ID
- 26. 在jQuery中生成动态下拉菜单append
- 27. 如何在_SiteLayout.cshtml页面中显示动态生成的菜单?
- 28. 在Winforms中动态生成第二个上下文菜单
- 29. php:动态生成JNLP?
- 30. PHP动态生成rowspan
重复的问题由同一个用户问http://stackoverflow.com/questions/2081324/dynamic-menu-generation- in-php – Joe 2010-01-17 14:37:58
@Joe你喝醉了吗? – streetparade 2010-01-17 14:39:43
@Joe:错误的链接,重复的问题ID是2081108 – 2010-01-17 14:40:12