채택완료

변수충돌인가...

2018-05-05 (토) 01:03:13 2,597

메뉴설정 active 시키니까 

영카트 메뉴설정 게시판 주소 링크하니까  

?mnum=2  이런식으로 변수값이 생기는데 

보드만 못찾는다고 나옴 

localhost/gb_shop/bbs/board.php?bo_table=blog_01?mnum=2

"존재 하지 않는 게시판"이라 이라고 주소를 못찾네요 

일반 php주소는 잘들어감 

어떻게 고쳐야 할까요 ?

변수를 지우자니 active 안먹구 

에러 뜰때마다 막막하네요 ~!

Copy
<?php
     if(!$mnum) $mnum = 0;
         $active = $i==$mnum? ' active' : '';

     if($i !=0 && $i !=10 && $i !=11) 
           echo "<li class='dropdown{$active}'>".PHP_EOL;
     else 
           echo "<li class='$active'>".PHP_EOL;

?>
                        <a href="<?php echo $row['me_link']; ?>?mnum=<?=$i?>" target="_<?php echo $row['me_target']; ?>" class="">
                        <?php echo $row['me_name'] ?>
                        <i class="fa fa-angle-down"></i>
                        </a>

</li>
|

답변 2개 / 댓글 6개

채택된 답변
+20 포인트

제가 사용하는 방법입니다.

Copy
if($bo_table) {

                    if(strpos($row2['me_link'], 'bo_table='.$bo_table) !== false) {

                        $active = ' active';

                    }

                } else if(strpos($row2['me_link'], $_SERVER['PHP_SELF']) !== false) {

                        $active = ' active';

                }

답변에 대한 댓글 5개

답변 감사합니다.
근데 이걸 어느부분에 넣어야 움직이나요?
php 초보인 제게는 추상적입니다.

제가 만드는 부분은 부트스트랩 메뉴 부분이라서
<li class= dropdown active ><a herf>메뉴</a></li>
모바일에선 .dropdown 이
데탑메뉴에서 .active는 칼라 변경 부분이라서...
소스중에.. 아래 부분을 대체하는 겁니다.
물론 mnum 넘기는 부분도 삭제하시구요
if(!$mnum) $mnum = 0;
$active = $i==$mnum? ' active' : '';
감사합니다.

이렇게 고쳤네요~! 링크는 잘 넘어가는데 성공적입니다.
문제가 class 부분 active 부분이 안 먹네요~!
메뉴글자색이 바뀌어야 되는데 <li class='dropdown active'> 명령주면 메뉴전체가 색이 바뀌네요~!
클릭한 메뉴만 바뀌어야 하는데 ... $num=<?i?> 이값이 active class 를 보이게 했던 부분인데....
뭘 또 틀렸나 ?

기본구조는 이렇구요
<ul class="nav navbar-nav navbar-right">
<li class="dropdown active">
<a href="#">menu</a><i class="fa fa-angle-down"></i>
<ul role="menu" class="sub-menu">
<li><a href="#">submenu</a></li>
</ul>
</li>
</ul>

[code]
<?php
if($bo_table) {

if(strpos($row2['me_link'], 'bo_table='.$bo_table) !== false) {

$active = ' active';

}

} else if(strpos($row2['me_link'], $_SERVER['PHP_SELF']) !== false) {

$active = ' active';
}

if($i !=0 && $i !=5 && $i !=6)
echo "<li class='dropdown{$active}'>".PHP_EOL;
else
echo "<li class='active'>".PHP_EOL;

?>
[/cod]
님이 원본 소스를 변형해서 그런것 같은데,
메뉴 부분 전체 소스를 올려보세요.
그리고 원하는 것을 구체적으로 올려주셔야 합니다.
서브 메뉴의 글자색 변경인가요??
질문을 새로 올리시면 답변할께요..^^

localhost/gb_shop/bbs/board.php?bo_table=blog_01&mnum=2

빨간색 부분이 수정되야함.

그런데 mnum 변수는 왜 넘기는거죠??

$row['me_code'] 를 활용해보세요..

답변에 대한 댓글 1개

&mnum 이걸로 고치면 일반 index.php를 못찾고
보드 게시판은 들어갑니다.

$row['me_code'] 이거 어떻게 쓰는건가요 ?
방법을 몰라요

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