미채택 완료

class 동시 적용 (strstr이용 했음.) (재수정 했습니다.)

2016-11-10 (목) 02:25:10 2,148
Copy
$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개

2016-11-10 (목) 09:27:54

질문이 어렵긴합니다..;;

for문 바로 윗줄에

 $sel = "";

초기화 처리 한번 해보세요.. 

2016-11-10 (목) 02:51:51

만드신 소스인거 같은데 각 변수에 어떤값들이 들어가는지 알수가 없어 답을 드릴수가 없습니다.

우측 상단 질문하는 방법 참고하시면 도움 되실겁니다.

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