단일 서브메뉴 일 때 왼쪽 메뉴 (mysubmenu) 조건부 노출
본문
안녕하세요
해당 링크의 글 참조하여 서브페이지 왼쪽메뉴를 사용중입니다.
<script type="text/javascript">
function display_submenu(num) {
document.getElementById("mysub"+num).style.display="block";
}
</script>
<style>
#mysubmenu {margin-top:-73px}
#mysubmenu h3 {height:45px;line-height:45px;background-color:#2e3c94;text-align:center;font-weight:normal;color:#fff}
#mysubmenu .leftmenu_b {line-height:50px;background-color:#2e3c94;text-align:center;font-size:12pt;font-weight:bold;color:#fff}
#mysubmenu .leftmenu_b a {font-size:0.875em;color:#fff}
#mysubmenu .leftmenu_s {line-height:45px;margin-top:-1px;padding:0 20px;border:1px solid #e9e9e9}
#mysubmenu a {text-decoration:none;font:menu;font-size:0.75em;color:#333}
#mysubmenu a:hover {color:#2e3c94}
</style>
<script>
// 지우지 말아주세요. 새창 등에서도 사용합니다.
$(document).ready(function() {
$("#mysubmenu a").on("click", function(e){ //링크 클릭시
var $data_midtxt = $(this).attr("data-midtxt");
if( $data_midtxt ){
$.cookie('sub_midtxt', $data_midtxt, { path: '/' });
} else {
$.cookie('sub_midtxt', null, { path: '/' });
}
});
});
</script>
<div id="mysubmenu">
<?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++) {
?>
<ul id="mysub<?php echo $i ?>" style="display:none;">
<li class="leftmenu_b"> <a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>"><?php echo $row['me_name']; ?></a></li>
<?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);
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ( ($row['me_name']==$board['bo_subject'])||($row['me_name']==$g5['title']) ) {
//if(strpos($row['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0) {
echo '<ul>'.PHP_EOL;
}
?>
<li class="leftmenu_s">
<a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" <?php
if ($row2['me_link']) {
$me_link0 = explode("=",$row2['me_link']);
if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
//if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo " style='color:#2e3c94'";
}
} else {
if ( ($row2['me_name']==$board['bo_subject'])||($row2['me_name']==$g5['title']) ) {
//if ( strpos($row2['me_link'], $_GET['bo_table']) !== false ) {
echo " style='color:#2e3c94'";
}
}
?>><?php echo $row2['me_name']; ?></a>
</li>
<?php
//좌측 서브메뉴 전체 리스트에서 현재 페이지에 해당하는 대메뉴 리스트만 보여줌
if ($row2['me_link']) {
$me_link0 = explode("=",$row2['me_link']);
if ( ($me_link0[1]==$board['bo_table'])||($me_link0[1]==$co_id) ) {
//if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
} else {
if ( ($row2['me_name']==$board['bo_subject'])||($row2['me_name']==$g5['title']) ) {
//if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo ("<script language='javascript'> display_submenu(" .$i. " ); </script> ");
}
}
}
if($k > 0) {
echo '</ul>'.PHP_EOL;
}
?>
</ul>
<?php
}
?>
</div>
서브메뉴가 1개만 있을 경우 상단 메인메뉴에서 드롭다운이 없도록 하기 위해서 관리자의 메뉴설정에서 하위메뉴를 설정하지 않았는데 이렇게 하다보니 당연히 서브페이지의 왼쪽메뉴도 노출이 되지 않네요 ㅠㅠ
위의 코드를 수정해서 서브메뉴가 1개만 있을 경우에도 하위메뉴가 나오게 할 수 있을까요? 이런 경우에는 상위메뉴와 동일한 메뉴명으로 노출이 되면 될 것 같습니다..
도움 부탁드리겠습니다.
감사합니다.
!-->답변 1
//if(strpos($row2['me_link'], $_GET['bo_table']) !== false) {
echo " style='color:#2e3c94'";
}
if를 주석처리 하였으나 닫는 괄호는 주석처리 되어 있지 않습니다.
전체적으로 그런 곳이 많이 보이네요.
답변을 작성하시기 전에 로그인 해주세요.