2026, 새로운 도약을 시작합니다.

3차 분류 메인메뉴 구성하기 채택완료

Copy




        메인메뉴

        

            

                전체메뉴열기

                

                

                    

                        

      

      

      

     

                        

                    

 

      

      

      

      

      

      

      

                    

                

                

                    메뉴 준비 중입니다. 

                        

                            

      

      

      

      

      

      

      

                        

      

       

       

       

                        

                    

                    

                        메뉴 준비 중입니다. 

위와 같이 하면 제대로 작동이 안되서요 어떻게 하면 3차 분류 메뉴가 나타날수 있을까요?

반나절 헤메다 고수님께 부탁드립니다. 아무나 도와 주시면 감사하겠습니다.

위 원본 소스코드는 그누보드 5.3 기본테마 head.php  파일에 있는 메뉴입니다.

3차 분류는 이미 정상으로 추가된 상태입니다. 

답변 3개

채택된 답변
+20 포인트

제가 사용중인 4차메뉴 부분입니다. 참고가 될지요..

           <?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 if ($txt == $row['me_name']) { ?><li class="gnb_1dli" style="z-index:<?php echo $gnb_zindex--; ?>">
                <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da" style="color:#fa6000"><?php echo $row['me_name'] ?></a>
    <?php } else { ?>
    <li class="gnb_1dli" 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 } ?>
                <?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']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><img src="../img/btn_next.gif"> <?php echo $row2['me_name'] ?></a>
     <?php
     $sql3 = " select *
        from {$g5['menu_table']}
        where me_use = '1'
          and length(me_code) = '6'
          and substring(me_code, 1, 4) = '{$row2['me_code']}'
        order by me_order, me_id ";
     $result3 = sql_query($sql3);
     $num3 = sql_num_rows($result3);
     if($num3>0){
      echo '<ul class="gnb_3dul">'.PHP_EOL;
      while($row3=sql_fetch_array($result3)){
     ?>
     <li class="gnb_3dli"><a href="<?php echo $row3['me_link']; ?>" target="_<?php echo $row3['me_target']; ?>" class="gnb_3da"><img src="../img/btn_next.gif"> <?php echo $row3['me_name'] ?></a>
     <?php
     $sql4 = " select *
        from {$g5['menu_table']}
        where me_use = '1'
          and length(me_code) = '8'
          and substring(me_code, 1, 6) = '{$row3['me_code']}'
        order by me_order, me_id ";
     $result4 = sql_query($sql4);
     $num4 = sql_num_rows($result4);
     if($num4>0){
      echo '<ul class="gnb_4dul">'.PHP_EOL;
      while($row4=sql_fetch_array($result4)){
     ?>
     <li class="gnb_4dli"><a href="<?php echo $row4['me_link']; ?>" target="_<?php echo $row4['me_target']; ?>" class="gnb_4da"><img src="../img/btn_next.gif"> <?php echo $row4['me_name'] ?></a></li>
     <?php
     }
     ?>
    </li>    
    <?php
                }   //end foreach $row4
                if($num4 > 0)
                    echo '</ul>'.PHP_EOL;
                ?>
            </li>
            <?php
  }   //end foreach $row3
            ?>
            </li>
    <?php
  }   //end foreach $row3
     if($num3 > 0)
                    echo '</ul>'.PHP_EOL;
    ?>
            </li>
            <?php
  }   //end foreach $row2
   if($k > 0)
            echo '</ul>'.PHP_EOL;
    ?>
            </li>
            <?php
  }   //end foreach $row

            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 } ?>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<style>
.gnb_3dli{border-top:1px solid #253dbe}
.gnb_3dli:first-child{border:0}
.gnb_4dli{border-top:1px solid #253dbe}
.gnb_4dli:first-child{border:0}
.gnb_2dul {display:none;position:absolute;top:50px;min-width:180px;background:#1a30a7;padding: 0;-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.1);-moz-box-shadow:  0 1px 5px rgba(0,0,0,0.1);box-shadow: 0 1px 5px rgba(0,0,0,0.1);}
.gnb_3da {display:block;padding:0 30px;line-height:40px;color:#c3cbf7;text-align:left;text-decoration:none}
a.gnb_3da:hover{background:#0e2080;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out;}
.gnb_4da {display:block;padding:0 50px;line-height:40px;color:#c3cbf7;text-align:left;text-decoration:none}
a.gnb_4da:hover{background:#0e2080;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out;}
</style>

윗쪽에 추가하세요.

default.css는 그대로 두고요.

<모바일쪽>

<style>
.gnb_3dul {display:none;}
.gnb_3da {border-bottom:1px solid #2d2d2d;background:url(../img/btn_next.gif) no-repeat 21px 17px;margin-left:40px}
.gnb_4dul {display:none;}
.gnb_4da {border-bottom:1px solid #2d2d2d;background:url(../img/btn_next.gif) no-repeat 21px 17px;margin-left:50px}
</style>
        <?php
            $sql = " select *
                        from {$g5['menu_table']}
                        where me_mobile_use = '1'
                          and length(me_code) = '2'
                        order by me_order, me_id ";
            $result = sql_query($sql, false);
            for($i=0; $row=sql_fetch_array($result); $i++) {
            $sql2 = " select *
              from {$g5['menu_table']}
                        where me_mobile_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);
     $row['cnt'] = @sql_num_rows($result2);
     ?>
     <li class="gnb_1dli<?php echo ($row['cnt'])?' menu-item-has-children':'';?>">
  <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
  <?php
  for ($k=0; $row2=sql_fetch_array($result2); $k++) {
   $sql3 = " select *
    from {$g5['menu_table']}
    where me_use = '1'
      and length(me_code) = '6'
      and substring(me_code, 1, 4) = '{$row2['me_code']}'
    order by me_order, me_id ";
   $result3 = sql_query($sql3);
   $row2['cnt'] = @sql_num_rows($result3);
  if($k == 0)
   echo '<ul class="sub-menu">'.PHP_EOL;
  ?>
  <li class="gnb_2dli<?php echo ($row2['cnt'])?' menu-item-has-children':'';?>">
   <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><?php echo $row2['me_name'] ?></a>
   <?php
   for ($s=0; $row3=sql_fetch_array($result3); $s++) {

    $tql4 = " select *
     from {$g5['menu_table']}
     where me_use = '1'
       and length(me_code) = '8'
       and substring(me_code, 1, 6) = '{$row3['me_code']}'
     order by me_order, me_id ";
    $result4 = sql_query($tql4);

    $row3['cnt'] = @sql_num_rows($result4);

    if($s == 0)
     echo '<ul class="sub-menu">'.PHP_EOL;
       ?>
    <li class="gnb_3dli<?php echo ($row3['cnt'])?' menu-item-has-children':'';?>">
     <a href="<?php echo $row3['me_link']; ?>" target="_<?php echo $row3['me_target']; ?>" class="gnb_3da"><img src="../img/btn_next.gif"> <?php echo $row3['me_name'] ?></a>
    <?php
     for ($t=0; $row4=sql_fetch_array($result4); $t++) {
     if($t == 0)
      echo '<ul class="sub-menu">'.PHP_EOL;
    ?>
     <li class="gnb_4dli">
      <a href="<?php echo $row4['me_link']; ?>" target="_<?php echo $row4['me_target']; ?>" class="gnb_4da"><img src="../img/btn_next.gif"> <?php echo $row4['me_name'] ?></a>
     </li>
     <?php
     }
     if($t > 0)
      echo '</ul>'.PHP_EOL;
     ?>
     </li>
     <?php
     }
    if($s > 0)
    echo '</ul>'.PHP_EOL;
    ?>
    </li>
     <?php
     }
     if($k > 0)
      echo '</ul>'.PHP_EOL;
     ?>
    </li>
    <?php
    }
    if ($i == 0) {  ?>
     <li class="gnb_1dli"><?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a><?php }else{ ?><a href="<?php echo G5_URL ?>">메뉴 준비 중입니다.</a><?php } ?></li>
    <?php } ?>
   <?php if(!G5_IS_MOBILE) { ?>
   <button type="button" class="gnb_close1_btn"><i class="fa fa-bars" aria-hidden="true"></i></button>
   </li>
   <?php } ?>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 9개

정말 감사합니다. ^^ 들레아빠님~~ 한번적용해 보겠습니다~~^^
적용을 해 보았습니다. 그랬더니 마우스 오버시에 3차 메뉴가 그대로 2차 메뉴 아래로 다 나타나는건 css 가 아니라 js 문제일까요? 전체 메뉴 말구요~ 드롭다운메뉴에서요 ^^;
css와 js모두 관계가 있습니다.
https://mingyeolkim.tech 에 적용되어 있는것 한번 보시고
이런것을 원하는 건지 알려 주셔요.
네 맞습니다. ^^; 들레아빠님께 너무 민폐를 끼치는건 아닌가 싶습니다. ㅠㅠ
원하는것을 알려 주세요..
지금은 1잔한 관계로 안되고 내일 알려 드릴게요..
jquery.menu.js <- 에 내용이 더 있을거 같다는 생각이듭니다. ^^;; 오늘 말구요 내일 시간 되실때 그럼 부탁드립니다. ^^;;; 감사합니다~
<style>
.gnb_3dli{border-top:1px solid #253dbe}
.gnb_3dli:first-child{border:0}
.gnb_4dli{border-top:1px solid #253dbe}
.gnb_4dli:first-child{border:0}

.gnb_2dul {display:none;position:absolute;top:50px;min-width:200px;background:#1a30a7;padding: 0;-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.1);-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.1);box-shadow: 0 1px 5px rgba(0,0,0,0.1);}
.gnb_3dul {display:none;position:absolute;top:50px;min-width:200px;background:#1a30a7;padding: 0;-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.1);-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.1);box-shadow: 0 1px 5px rgba(0,0,0,0.1);}
.gnb_4dul {display:none;position:absolute;top:50px;min-width:200px;background:#1a30a7;padding: 0;-webkit-box-shadow: 0 1px 5px rgba(0,0,0,0.1);-moz-box-shadow: 0 1px 5px rgba(0,0,0,0.1);box-shadow: 0 1px 5px rgba(0,0,0,0.1);}
.gnb_2da {display:block;padding:0 10px;line-height:50px;color:#c3cbf7;text-align:left;text-decoration:none}
.gnb_3da {display:block;padding:0 10px;line-height:50px;color:#c3cbf7;text-align:center;text-decoration:none}
a.gnb_3da:hover{background:#0e2080;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out;}
.gnb_4da {display:block;padding:0 10px;line-height:50px;color:#c3cbf7;text-align:center;text-decoration:none}
a.gnb_4da:hover{background:#0e2080;-moz-transition: all 0.3s ease-out;-o-transition: all 0.3s ease-out;transition: all 0.3s ease-out;}

.main-min, .main-min * {margin:0;padding:0;list-style:none;height:50px;}
.main-min li {position:relative;}
.main-min ul {position:absolute;display:none;top:100%;left:0;z-index:99;}
.main-min > li {float: left;}
.main-min li:hover > ul,.main-min li.sfHover > ul {display: block;}
.main-min a {display:block;position:relative;}
.main-min ul ul {top:0;left:100%;}
.main-min ul {box-shadow: 2px 2px 6px rgba(0,0,0,.2);min-width:10em;*width: 80em;}
.main-min a {color:#fff;padding-left:20px;text-align:left;zoom: 1;}
.main-min li {white-space: nowrap;*white-space: normal;}
.main-min ul li {background:#1a30a7}
.main-min li:hover,
.main-min li.sfHover{-webkit-transition: none;transition:none;}
.main-min li:hover a,
.main-min li a:hover {color:#fff}
</style>

head.php에서
<nav id="gnb">
<h2>메인메뉴</h2>
<div class="gnb_wrap">
<ul id="gnb_1dul"> ==>> <ul id="gnb_1dul" class="main-min"> 이렇게 수정하세요.
들레아빠님 감사합니다. 적용해보니 잘 됩니다. ^^ 님 덕분에 css 학습에도 도움이 되었습니다.
혜민이아빠 화이팅 하세요..
도움이 되었다니 다행입니다.
수고하세요.

댓글을 작성하려면 로그인이 필요합니다.

전체메뉴 부분(<ul class="gnb_al_ul">)

        <?php
            $sql = " select *
                        from {$g5['menu_table']}
                        where me_mobile_use = '1'
                          and length(me_code) = '2'
                        order by me_order, me_id ";
            $result = sql_query($sql, false);
            for($i=0; $row=sql_fetch_array($result); $i++) {
            $sql2 = " select *
              from {$g5['menu_table']}
                        where me_mobile_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);
     $row['cnt'] = @sql_num_rows($result2);
     ?>
     <li class="gnb_1dli<?php echo ($row['cnt'])?' menu-item-has-children':'';?>">
  <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name'] ?></a>
  <?php
  for ($k=0; $row2=sql_fetch_array($result2); $k++) {
   $sql3 = " select *
    from {$g5['menu_table']}
    where me_use = '1'
      and length(me_code) = '6'
      and substring(me_code, 1, 4) = '{$row2['me_code']}'
    order by me_order, me_id ";
   $result3 = sql_query($sql3);
   $row2['cnt'] = @sql_num_rows($result3);
  if($k == 0)
   echo '<ul class="sub-menu">'.PHP_EOL;
  ?>
  <li class="gnb_2dli<?php echo ($row2['cnt'])?' menu-item-has-children':'';?>">
   <a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><?php echo $row2['me_name'] ?></a>
   <?php
   for ($s=0; $row3=sql_fetch_array($result3); $s++) {

    $tql4 = " select *
     from {$g5['menu_table']}
     where me_use = '1'
       and length(me_code) = '8'
       and substring(me_code, 1, 6) = '{$row3['me_code']}'
     order by me_order, me_id ";
    $result4 = sql_query($tql4);

    $row3['cnt'] = @sql_num_rows($result4);

    if($s == 0)
     echo '<ul class="sub-menu">'.PHP_EOL;
       ?>
    <li class="gnb_3dli<?php echo ($row3['cnt'])?' menu-item-has-children':'';?>">
     <a href="<?php echo $row3['me_link']; ?>" target="_<?php echo $row3['me_target']; ?>"><?php echo $row3['me_name'] ?></a>
    <?php
     for ($t=0; $row4=sql_fetch_array($result4); $t++) {
     if($t == 0)
      echo '<ul class="sub-menu">'.PHP_EOL;
    ?>
     <li class="gnb_4dli">
      <a href="<?php echo $row4['me_link']; ?>" target="_<?php echo $row4['me_target']; ?>"><?php echo $row4['me_name'] ?></a>
     </li>
     <?php
     }
     if($t > 0)
      echo '</ul>'.PHP_EOL;
     ?>
     </li>
     <?php
     }
    if($s > 0)
    echo '</ul>'.PHP_EOL;
    ?>
    </li>
     <?php
     }
     if($k > 0)
      echo '</ul>'.PHP_EOL;
     ?>
    </li>
    <?php
    }
    if ($i == 0) {  ?>
     <li class="gnb_1dli"><?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a><?php }else{ ?><a href="<?php echo G5_URL ?>">메뉴 준비 중입니다.</a><?php } ?></li>
    <?php } ?>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

들레아빠님 너무 감사드립니다. 적용은 안해봤지만.. 그래도 답변을 주셔서 먼저 인사드립니다.
들레아빠님 혹시...
제가 적용을 해보니 잘되는데 css 부분 도 알려주실수 있으신가요?
예를들어 gnb_1dli 는 있으나 gnb_3dli 는 없고..menu-item-has-children 이런 것도 없고해서
혹시나 부탁드려봅니다. ^^;; 쪽지를 공개 안하셔서 보내드리지 못하고 여기에 올립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고