我在多级菜单上遇到了一些问题。我在mysql中有这个字段的表:
id,title,别名(这是链接),parent_id
例如,我将展示如何填充父母和孩子:
1(id)治疗(标题)治疗(别名)0(parent_id)
2(id)程序(标题)程序(别名)1(parent_id)
3(id)注射(标题)注射(别名)2(parent_id)
在输出中我想获得这种类型的链接:
sitename.com/treatment
sitename.com/treatment/procedures
sitename.com/treatment/procedures/injections
我以这种方式从数据库中获取菜单:
$result = $db->prepare($sql);
$result->execute();
$parent = 0;
$parent_stack = array();
$html = '';
$children = array();
$parent_link = "";
if($result->rowCount()>0){
foreach($result as $item)
$children[$item['parent_id']][] = $item;
$i=0;
while((($option = each( $children[$parent])) || ($parent > 0))){
if(!empty($option)){
if(!empty($children[$option['value']['id']])){
$html .='<li><a href="'.SITEPATH.''.$option["value"]["alias"].'/">'.$option["value"]["title"].'</a>';
$html .= '<ul class="submenu">';
array_push( $parent_stack, $parent );
$parent = $option['value']['id'];
$parent_link = $option['value']['alias'];
}else{
$html .='<li><a href="'.SITEPATH.''.$parent_link.'/'.$option["value"]["alias"].'/">'.$option["value"]["title"].'</a></li>';
}
}else{
$html .= '</ul></li>';
$parent = array_pop( $parent_stack );
}
$i++;
}
}
return $html;
这适用于两个级别,第三级$parent_link
这个第二级链接。
谢谢你的关注