카테고리 메뉴 인식
본문
안녕하세요.. 코드만 복사해서 붙여놓을줄 아는 초보입니다.
질문글에 대한 답변 부탁드려요..ㅠㅠ
그누보드5의 메뉴스킨 올려주신것을 영카트에 적용하여
<script language="javascript">
</div>
for(var id = 0;id<=7;id++)
{
if(id==num)
{
document.getElementById("mmenu"+id).style.display="block";
document.getElementById("smenu"+id).className="nav_on";
}
else
{
document.getElementById("mmenu"+id).style.display="none";
document.getElementById("smenu"+id).className="";
}
}
}
</script>
<ul>
<?php if (defined('_INDEX_')) { ?>
<li><a href="<?php echo $site_url; ?>"<?php echo ($is_main && !$gid) ? ' class="on"' : ''; ?> onmouseover="javascript:sexyclub(0)" id="smenu0" class="nav_on"><span class="old"><i class="fa fa-home"></i> 메인</span></a></li>
<?php }else{ ?>
<li><a href="<?php echo $site_url; ?>"<?php echo ($is_main && !$gid) ? ' class="on"' : ''; ?> onmouseover="javascript:sexyclub(0)" id="smenu0" class="nav_off"><span class="old"><i class="fa fa-home"></i> 메인</span></a></li>
<?php } ?>
<?php
// 1단계 분류 판매 가능한 것만
$hsql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '2' and ca_use = '1' order by ca_order, ca_id ";
$hresult = sql_query($hsql);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=1; $row=sql_fetch_array($hresult); $i++)
{
$gnb_zindex -= 1; // html 구조에서 앞선 gnb_1dli 에 더 높은 z-index 값 부여
// 2단계 분류 판매 가능한 것만
$sql2 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row['ca_id']}' and ca_use = '1' order by ca_order, ca_id ";
$result2 = sql_query($sql2);
$count = mysql_num_rows($result2);
?>
<?php if ($ca_id == $row['ca_id']) { ?>
<li><a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row['ca_id']; ?>" onmouseover="javascript:sexyclub(<?=$i?>)" id="smenu<?=$i?>" class="nav_on"><span class="<?php echo $menu[$i]['new']; ?>"><?php echo $row['ca_name']; ?></span></a></li>
<?php }else{ ?>
<li><a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row['ca_id']; ?>" onmouseover="javascript:sexyclub(<?=$i?>)" id="smenu<?=$i?>" class="nav_off"><span class="<?php echo $menu[$i]['new']; ?>"><?php echo $row['ca_name']; ?></span></a></li>
<?php } ?>
<?php } ?>
</ul>
<div class="clear"></div>
<div id="menu_con">
<?php if (defined('_INDEX_')) { ?>
<div id="mmenu0" style=" display: block">가나다
</div>
<?php }else{ ?>
<div id="mmenu0" style=" display: none">다라바
</div>
<?php } ?>
<?php
// 1단계 분류 판매 가능한 것만
$hsql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '2' and ca_use = '1' order by ca_order, ca_id ";
$hresult = sql_query($hsql);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=1; $row=sql_fetch_array($hresult); $i++)
{
$gnb_zindex -= 1; // html 구조에서 앞선 gnb_1dli 에 더 높은 z-index 값 부여
// 2단계 분류 판매 가능한 것만
$sql2 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row['ca_id']}' and ca_use = '1' order by ca_order, ca_id ";
$result2 = sql_query($sql2);
$count = mysql_num_rows($result2);
?>
<?php
if ($ca_id == $row['ca_id'] ) { ?>
<div id="mmenu<?=$i?>" class="sub_menu" style="display:block">
<?php }else { ?>
<div id="mmenu<?=$i?>" class="sub_menu" style="display:none">
<?php } ?>
<?php
for ($j=0; $row2=sql_fetch_array($result2); $j++)
{
if ($j==0) echo '<ul class="gnb_2dul" style="z-index:'.$gnb_zindex.'">';
?>
<li class="gnb_2dli"><a href="<?php echo G5_SHOP_URL; ?>/list.php?ca_id=<?php echo $row2['ca_id']; ?>" class="gnb_2da"><?php echo $row2['ca_name']; ?></a></li>
<?php }
if ($j>0) echo '</ul>';
?>
</div>
<?php } ?>
</div>
으로 하였습니다.
위와같이 하면 1단계 카테고리 페이지에서는 1단계 카테고리에 속해져있는 2단계 카테고리가 보여지게 됩니다.
하지만 2단계 카테고리 클릭시 메뉴에 2단계 카테고리가 속해져 있는 1단계 카테고리가 1단계를 클릭했을때와 함께
똑같이 보여줘야 하는데 카테고리 인식이 풀어지게(?) 됩니다.;;
위에서 if ($ca_id == $row['ca_id'] ) { 요 부분을 수정해야 할것 같은데 어찌해야할지 모르겠습니다.;;;;
도움부탁드립니다~~
답변 1
기본적으로 순차적으로 나오는 메뉴들은 구조가 여러가지가 있지만 제가 즐겨쓰는 구조로만 설명해드리겠습니다
<ul>
<li>
<a href="">1단계-1</a>
<ul>
<li><a href=''>2단계-1</a></li>
<li>
<a href="">2단게-2</a>
</li>
</ul>
</li>
<li>1단계-2</li>
<li>
<a href="">1단계-3</a>
<ul>
<li>
<a href="">2단계</a>
<ul>
<li><a href="">3단계</a>
</ul>
</li>
</ul>
</li>
</ul>
머 대충 이런형태로 사용을 합니다
마우스를 올렸을때 해당 레이아웃에서 벗어나면 따로 설정을 해야하므로 위처럼 해당 li 속에 있는 ul li 를 열게 만드는 형태 입니다
즉, 쿼리를 날릴때
<?
for($i=0; $i<10; $i++)
{
for($j=0; $j<10; $j++)
{
for($k=0; $k<10; $k++)
{
}
}
}
?>
이런식으로 날리게 되지요