현재 메뉴의 선택 방식

현재 메뉴의 선택 방식

QA

현재 메뉴의 선택 방식

본문

현재 메뉴 선택에 대하여..

 

메뉴에 보면 코드가 있는데요~

 

10  

1010

1020

20

30

3010

3020

3030

 

이런식으로 3개의 대메뉴가 있고, 1번메뉴와 3번 메뉴에는 서브메뉴가 있습니다.

1010의 메뉴를 선택했다면 10의 메뉴에 select 값을 주고 싶은데요~

이게 서브메뉴이다보니 하위메뉴에 존재하는데 상위 메뉴에 select 값을 어떤방식으로 줘야 할까요> 

 


이 질문에 댓글 쓰기 :

답변 4

URL에 포함하지 않고 me_code 값을 노출하는 방식은 ...

 

 

상단에 변수로 지정하는 방식도 있습니다.

 

일반 html 페이지인 경우

 

상단쪽에 변수로 지정..

 

$me_code = "10"; 

 

게시판의 경우에는 

 

baord_head.php 에  변수 추가

 

 switch($bo_table){

case "board1":

$me_code = "10";

break;

 

case "board2":

$me_code = "20";

break;

 

case "board3":

$me_code = "30";

break;

 } 

 

이런식으로 표현할 수도 있습니다.

페이지에 code를 넣어서 하면 get 방식이 아니어도 되긴 하겠네요~..

수동으로 하고 관리한다면 페이지를 다른 메뉴로 옮기면 해당 메뉴 코드와 일치해야겠지만... 스위치문도 그때그때마다 변경해야겠네요..

아무튼 답변 감사합니다.

앞에 2자리만 비교하시면 될꺼에요

substr($me_code,0,2);

그누보드5의 메뉴기능을 사용중이시라면 하위메뉴 링크가 디비에서 가져오는 사항이라서 링크에 me_code를 추가한 후에 me_code 값의 앞자리2자리만 비교하는 방식으로 하셔야 합니다.

 

좀더 자세한 내용이나 메뉴부분 코드를 알려주시면 자세한 설명을 드릴께요

<nav id="gnb">
        <h2>메인메뉴</h2>
        <ul id="gnb_1dul">
            <?php
            $sql = " select *
                        from {$g5['menu_table']}
                        where me_use = '1'
                          and length(me_code) = '2'
                        order by me_order, me_id ";
            $result = sql_query($sql, false);
            $gnb_zindex = 999; // gnb_1dli z-index 값 설정용

            for ($i=0; $row=sql_fetch_array($result); $i++) {
            ?>

<?php $default="gnb_1dli"; ?>

            <li class="<?php echo $default; ?>" style="z-index:<?php echo $gnb_zindex--; ?>">
                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
                <?php
                $sql2 = " 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, me_id ";
                $result2 = sql_query($sql2);

                for ($k=0; $row2=sql_fetch_array($result2); $k++) {
                    if($k == 0)
                        echo '<ul class="gnb_2dul">'.PHP_EOL;
                ?>

<?php if ($row['me_code'] = substr($row2['me_code'],0,2)) { ?>
<?php $default="gnb_1dli_on"; ?>
<?php } ?>


                    <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li>
                <?php
                }

                if($k > 0)
                    echo '</ul>'.PHP_EOL;
                ?>
            </li>
            <?php
            }

            if ($i == 0) {  ?>
                <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
            <?php } ?>
        </ul>
    </nav>

<nav id="gnb"> 

        <h2>메인메뉴</h2> 

        <ul id="gnb_1dul"> 

            <?php 

            $sql = " select * 

                        from {$g5['menu_table']} 

                        where me_use = '1' 

                          and length(me_code) = '2' 

                        order by me_order, me_id "; 

            $result = sql_query($sql, false); 

            $gnb_zindex = 999; // gnb_1dli z-index 값 설정용 

 

            for ($i=0; $row=sql_fetch_array($result); $i++) { 

            

 

// 메뉴 셀렉트용

if(substr($_GET['me_code'],0,2)==substr($row['me_code'],0,2){

$default = "gnb_1dli_on";

}else{

$default = "gnb_1dli";

}

 

?> 

 

            <li class="<?=$default?>" style="z-index:<?php echo $gnb_zindex--; ?>"> 

                <a href="<?php echo $row['me_link']; ?>&me_code=<?=$row['me_code']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a> 

                <?php 

                $sql2 = " 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, me_id "; 

                $result2 = sql_query($sql2); 

 

                for ($k=0; $row2=sql_fetch_array($result2); $k++) { 

                    if($k == 0) 

                        echo '<ul class="gnb_2dul">'.PHP_EOL; 

                ?> 

 

 

                    <li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>&me_code=<?=$row2['me_code']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a></li> 

                <?php 

                } 

 

                if($k > 0) 

                    echo '</ul>'.PHP_EOL; 

                ?> 

            </li> 

            <?php 

            } 

 

            if ($i == 0) {  ?> 

                <li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li> 

            <?php } ?> 

        </ul> 

    </nav> 

답변 감사합니다.
근데 위와 같은 방식으로 하면, url에 메뉴코드가 포함이 되어 나중에 url를 복사하거나 게시판 또는 메뉴 위치나 순서를 변경하게 되면 다르게 나오는 부분도 있을것 같고 메뉴가 게시판인경우 게시판의 목록이면 괜찮지만, 글쓰기를 하거나 글을 보면 셀렉트가 해제가 되네요...


url에 포함되지 않는 우회 하는 방법이 있는지요..

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

회원로그인

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