테스트 사이트 - 개발 중인 베타 버전입니다

선택 된 페이지 강조하려면... 채택완료

추팔소 7년 전 조회 1,922

</p>

<p><li><a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="menu-nav-left nav-<?php echo $i; ?>"><?php echo $row['me_name'] ?></a></li></p>

<p>

 

위 코드는 for문 내의 html 코드 입니다.

 

선택 된 게시판 페이지 class에 'on' 이라는 클래스를 하나 주고

'on' 이라는 클래스는 글자색이나 배경색 다르게 주려고 합니다.

 

찾아봤는데 거의 다 자바스크립트로만 되어 있더라구요.

php 코드로만 쓸 수 있는 방법이 있다면 알려주시면 감사드리겠습니다.

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

답변 2개

채택된 답변
+20 포인트

간단한 꼼수 입니다만 strpos 를 사용해서 비교하는건 어떨까요?

테이블이의 접두어가 있는 경우는 고려되지 않았습니다. (Ex. domain_test, domain_test2)

 

</p>

<p><?</p>

<p>// strpos를 사용해서 문자열 체크</p>

<p>$haystack = $_SERVER['REQUEST_URI'];  // <a href="http://site.com/bbs/board.php?bo_table=test" target="_blank" rel="noopener noreferrer">http://site.com/bbs/board.php?bo_table=test</a></p>

<p>$needle = str_place("/","bo_table=",$row['me_link']); // bo_table=test</p>

<p>?></p>

<p><?=strpos($haystack,$needle) !== false ? "on" : "off"; ?></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

추팔소
7년 전
앗, 지금까지 헤메다가 해결해서 댓글 달아놓으려고 왔는데 감사히 답변 해주셨네요.
감사합니다...

제가 찾은 방법은 아래와 같습니다.

[code]
<li><a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="menu-nav-left <?php if($row['me_link'] == G5_URL.'/'.$bo_table) { echo 'on'; } ?>"><?php echo $row['me_name'] ?></a></li>
[/code]

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

  • ">
  •  

    빨간 부분 추가하시면 됩니다.

    빨간 부분하고 기존 부분 사이에 꼭 공백이 들어가야 on 클래스 먹힙니다~

    로그인 후 평가할 수 있습니다

    답변에 대한 댓글 2개

    추팔소
    7년 전
    우선 답변 감사드립니다.

    답변해주신 내용도 이미 생각해봤지만 자동화(?)를 위해서 포기한 코드입니다 ㅠ.ㅠ
    테이블명으로 쓰는 건 일일히 수동 작업이라....

    갑자기 한 가지 생각난게 있는데요.

    [ href의 $row['me_link']와 '현재 페이지 주소'가 일치하면 'on' 클래스를 넣어주는 걸로도
    가능할 것 같은데 현재 페이지 주소를 불러오는 함수가 있을까요?
    추팔소
    7년 전
    $_SERVER['REQUEST_URI']
    현재 페이지 주소를 불러오는 함수는 찾았습니다.

    그런데 문제가 뭐냐면....

    제가 현재 짧은 주소를 사용중이라 이 상태에서의 예를 들어 보겠습니다.

    $row['me_link'] 는 "/test" (테이블명) 만 출력됩니다.
    $_SERVER['REQUEST_URI'] 는 "http://site.com/bbs/board.php?bo_table=test" 이렇게 출력됩니다.

    결과적으로 두 값이 100% 일치하진 않습니다.
    다른 해결 방법 없을까요?

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

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

    로그인