class 동시 적용 (strstr이용 했음.) (재수정 했습니다.)
본문
$lMenu = get_middle_navi();
<?php
if($lMenu['cnt']) {
for($i=0; $i<$lMenu['cnt']; $i++) {
$lm = $lMenu[$i];
if($co_id)
$sel = strstr($lm['me_link'],$co_id)?"class_on":"";
if($bo_table)
$sel = strstr($lm['me_link'],$bo_table)?"class_on":"";
?>
<li><a href="<?php echo($lm['me_link']);?>" class="gnb_fav <?php echo $sel ?>"><?php echo($lm['me_name']);?></a></li>
<?php } ?>
이렇게 코드를 작성했습니다.
그래서 관리자에 들어가서 메뉴설정에서 메뉴를 만들어준다음에
테스트를 해보았습니다.
메뉴를 클릭하면 해당메뉴에 class_on 이라는 class가 들어가게 되는데요.
네, 아주 잘 작동하는데 버그가 있더군요
아마 strstr 이란 함수가 무조건 같은 글자가 있으면 true를 반환하는거 같은데..
메뉴설정에서 링크를
/bbs/board.php?bo_table=board1
/bbs/board.php?bo_table=board2
/bbs/board.php?bo_table=board3
이렇게 링크를 작성해주고 확인을 누른다음에
다시 테스트를 해보면
링크 board1,2,3에 전부 class_on 이라는 class가 들어갑니다..
/bbs/board.php?bo_table=a1
/bbs/board.php?bo_table=b2
/bbs/board.php?bo_table=c3
이렇게 하면 a1누르면 a1에 class_on이 들어가고
b2누르면 b2에 class_on이 들어가고
각각 클릭했을때 class가 잘 들어가는데
board1,2,3 저 링크만 주면
board1 클릭해도 2,3에 전부 class_on 이라는 class가 들어갑니다..
아마 계속 테스트해보기엔 board라는 글자가 다 똑같기때문에
전부 class를 넣어주는거 같은데.. 방법이 없을까요?
아, 그리고 board1,2,3이 있으면 board1을 누르면 2,3에 전부 class가 들어가지만
board2를 누르면 1,3에는 들어가지 않습니다.. 참 희얀합니다;
답변 2
만드신 소스인거 같은데 각 변수에 어떤값들이 들어가는지 알수가 없어 답을 드릴수가 없습니다.
우측 상단 질문하는 방법 참고하시면 도움 되실겁니다.
질문이 어렵긴합니다..;;
for문 바로 윗줄에
$sel = "";
초기화 처리 한번 해보세요..