php for문으로 불러오는 카테고리에서 활성화 적용

php for문으로 불러오는 카테고리에서 활성화 적용

QA

php for문으로 불러오는 카테고리에서 활성화 적용

본문

게시판 그룹 A 을 만들고

 

게시판 13개를 그룹A로 묶은 상태에서 스킨은 1개로 사용중입니다.

 

카테고리로 안쓰고 각각의 게시판을 13개로 만들다보니 탭메뉴 형식의 카테고리를 for문으로 불러와봤는데 활성화 적용이 어렵네요...;;

 


<ul class="activity-tab">
        <?php
            $sql = " select count(*) as cnt from {$g5['board_table']} where gr_id = 'activity' order by bo_subject "; // 게시판 중에 gr_id 가 activity 인 게시판들의 개수를 불러옴
            $row = sql_fetch($sql);
            $sql = " select bo_table, bo_subject from {$g5['board_table']} where gr_id = 'activity' order by bo_subject "; // 그룹이 acitivity인 게시판들의 bo_table, bo_subject 를 가져옴
            $result = sql_query($sql);
            $str = '';
            for($i=0;$row=sql_fetch_array($result);$i++){ // for문으로 카테고리를 생성
                $str .= '<li><a href="/bbs/board.php?bo_table='.$row['bo_table'].'" title="'.$row['bo_subject'].'"';
                if( $row['bo_table'] === $bo_table )
                    $current = 'class="active"';
                $str .= $current.'>'.$row['bo_subject'].'</a></li>';
            }
            // while($row = sql_fetch_array($result)) {
            //     if( $row['bo_table'] === $bo_table )
            //         $current = 'active';
            //     $str .= '<li><a href="/bbs/board.php?bo_table='.$row['bo_table'].'" title="'.$row['bo_subject'].'" class="'.$current.'">'.$row['bo_subject'].'</a></li>';
            // }
            echo $str;
        ?>
    </ul>

 

다른 페이지들에서 for문, while문, sql 쿼리 등등을 조합해서 가져와봤는데

 

리스트는 잘 만들어졌습니다..;; 근데 for문이든 while문이든...

 

$row['bo_table'] === $bo_table 이면 active 클래스를 줘서 활성화를 표시해주려 했는데

 

적용이 안되고 있습니다...;;ㅠㅠㅠ

 

/bbs/list.php 페이지 보면 카테고리도 for문안에서 id="bo_cate_on" 을 주길래

 

따라해본건데 안되네요;;

 

어느 부분을 고쳐야할까요...??ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 2

굳이 current 를 둔이유는 모르지만 이렇게만 하셔도 되지 싶습니다.


$current = 'class="active"'  ==> $str .= 'class="active"'

그리고 어떻게 안되나요?

 

헐...?? 잘됩니다...;;


if( $row['bo_table'] === $bo_table )
    $str .= 'class="acitve"';


알려주신대로 하니 잘 되네요...

아... 생각이 쫌 짧았었네요... $current 를 만들고나서...

나중에 $str .= $current 를 하니깐... 모든 a태그에 active 클래스가 모두 적용되는거였네요;;

감사합니다!!ㅠㅠㅠ

탭 활성화는 기본 탭(첫번째 탭)을 활성화 하고 스크립트로 나머지 활성화는 처리해 보세요.

해당 페이지가  예를 들어 tablatest.php 라는 페이지로 되어 있고 탭마다 tablatest.php?bo_table=tablename

와 같이  bo_table을 get으로 받아오는게 아니라면 php로 탭 active  처리는 안됩니다.

탭처리... 라기보다는 페이지 인식이 더 맞는 표현인거 같아요...;;

탭모양을 가장한 페이지 인식인 셈이죠...;;

그래서 $bo_table 로 현재 게시판의 테이블명을 받아오고,

$row['bo_table'] 에서 같은 명이 있으면 active 를 주려는 거였는데...

이런식으로 페이지 인식도 안되려나요....??

탭 링크를 bo_table=테이블명 으로 링크 작성후
$active = "";
if($row['bo_table'] == $bo_table){
    $active = "class='active'";
}

 $str .= '<li><a href="/bbs/board.php?bo_table='.$row['bo_table'].'" title="'.$row['bo_subject']" '.$active.'>'.$row['bo_subject'].'</a></li>';

처럼 하면 될듯 한데 위 코드는 탭링크를 게시판으로 바로 보내는 링크라서


if($row['bo_table'] == $bo_table){
조건이 안먹습니다.
링크를 최신글 탭이 실행되는 페이지로 하세요.

답변을 작성하시기 전에 로그인 해주세요.
전체 166
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT