그누보드 메뉴 active 질문있습니다..

그누보드 메뉴 active 질문있습니다..

QA

그누보드 메뉴 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>
<?}?>

제이쿼리로 처리해야합니다. 클릭시 클래스 추가되도록

답변을 작성하시기 전에 로그인 해주세요.
전체 123,118 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT