그누보드 메뉴 active 질문있습니다..
본문
<?php
$parent_menu_sql = "select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order";
$parent_menu_res = sql_query($parent_menu_sql);
for($i=0;$row=sql_fetch_array($parent_menu_res);$i++){
$menu_sql = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order ";
$menu_res = sql_query($menu_sql);
?>
<li class="treeview">
<a href="<?=$row[me_link]?>">
<span><?=$row[me_name]?></span>
</a>
<ul class="treeview-menu">
<?
for($k=0;$row2=sql_fetch_array($menu_res);$k++){?>
<li class="<?php if(strpos($_SERVER['REQUEST_URI'],$row2[me_link]) !== false){?>active<?php }?>">
<a href="<?=$row2[me_link]?>">- <?=$row2[me_name]?></a>
</li>
<?}?>
</ul>
</li>
<?}?>
메뉴를 이렇게 뿌리는데 하위 메뉴는 현재 url과 me_link 비교해서 active 주면될거같은데
active 된 li 그 상위 부모li (treeview)에도 active를 주려면 어떻게 해야하나요?..
!-->답변 2
일단 올리신 방법으로 문제되는게 게시판같은 링크를 달경우
/bbs/board.php?bo_table=notice
글쓰기나 상세페이지 갔을때 서브메뉴에서 active가 안걸립니다. 변수때문에 일치하지 않으니까요.
/bbs/board.php?bo_table=notice&wr_id=11
질문하신 소스에서 원하시는 부분만 구현하자면 ob함수로 서브메뉴를 미리 돌려서 active가 있으면 부모 $parent_active가 true가 되면서active클래스가 추가됩니다.
<?php
$parent_menu_sql = "select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order";
$parent_menu_res = sql_query($parent_menu_sql);
for($i=0;$row=sql_fetch_array($parent_menu_res);$i++){
$menu_sql = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order ";
$menu_res = sql_query($menu_sql);
?>
<li class="treeview">
<?php
$parent_active= false;
ob_start();
?>
<ul class="treeview-menu">
<?
for($k=0;$row2=sql_fetch_array($menu_res);$k++){?>
<li class="<?php if(strpos($_SERVER['REQUEST_URI'],$row2[me_link]) !== false){ $parent_active= true; ?>active<?php }?>">
<a href="<?=$row2[me_link]?>">- <?=$row2[me_name]?></a>
</li>
<?}?>
</ul>
<?php
$parent_active= false;
$sub_menu_ul = ob_get_contents();
ob_end_clean();
?>
<a href="<?=$row[me_link]?>" <?php echo $parent_active?'active':''?>>
<span><?=$row[me_name]?></span>
</a>
<?php echo $sub_menu_ul?>
</li>
<?}?>
제이쿼리로 처리해야합니다. 클릭시 클래스 추가되도록
답변을 작성하시기 전에 로그인 해주세요.