체크박스에 체크를 하면 게시판 목록에서 안보이게 하고싶습니다.

체크박스에 체크를 하면 게시판 목록에서 안보이게 하고싶습니다.

QA

체크박스에 체크를 하면 게시판 목록에서 안보이게 하고싶습니다.

본문

안녕하세요. 작업중에 안되는 부분이 있어서 질문드립니다..ㅜㅜ

 

구현하고싶은 내용은

 

체크박스에 체크를 하면 게시판리스트에서 그 글이 안보이게 하는것입니다.

 

write.skin.php


<?php  if ($is_admin == 'super') { ?>
		<tr>
			<th scope="row">노출안함</th>
            <td>
				<input type="checkbox" name="wr_5" value="1" id="wr_5" required class="frm_input required">
			</td>
		</tr>
		<?php } ?>

 

list.skin.php


<?php if(!$list[$i]['wr_5'] == '1'){?>
        <?php
        for ($i=0; $i<count($list); $i++) {
         ?>
        <tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?>">
            <td class="td_num">
            <?php
            if ($list[$i]['is_notice']) // 공지사항
                echo '<strong>공지</strong>';
            else if ($wr_id == $list[$i]['wr_id'])
                echo "<span class=\"bo_current\">열람중</span>";
            else
                echo $list[$i]['num'];
             ?>
            </td>
            <?php if ($is_checkbox) { ?>
            <td class="td_chk">
                <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>
                <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">
            </td>
            <?php } ?>
            <td class="td_subject">
                <?php
                echo $list[$i]['icon_reply'];
                if ($is_category && $list[$i]['ca_name']) {
                 ?>
                <a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
                <?php } ?>
 
                <a href="<?php echo $list[$i]['href'] ?>">
					<?php if($is_admin) echo $list[$i]['wr_name']; else echo preg_replace('/.(?!..)/u', "$1*", $list[$i]['wr_name']); ?>님의 문의입니다.
                    <?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><?php echo $list[$i]['comment_cnt']; ?><span class="sound_only">개</span><?php } ?>
                </a>
 
                <?php
                // if ($list[$i]['link']['count']) { echo '['.$list[$i]['link']['count']}.']'; }
                // if ($list[$i]['file']['count']) { echo '<'.$list[$i]['file']['count'].'>'; }
 
                if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new'];
                if (isset($list[$i]['icon_hot'])) echo $list[$i]['icon_hot'];
                if (isset($list[$i]['icon_file'])) echo $list[$i]['icon_file'];
                if (isset($list[$i]['icon_link'])) echo $list[$i]['icon_link'];
                if (isset($list[$i]['icon_secret'])) echo $list[$i]['icon_secret'];
 
                 ?>
            </td>
			<td class="td_state"><?php if ($list[$i]['comment_cnt']) { ?><span class="st_ok"><img src="<?php echo $board_skin_url ?>/img/st_yes.png" alt="답변완료" /><span><?php } else { ?><span class="st_no"><img src="<?php echo $board_skin_url ?>/img/st_no.png" alt="답변대기" /></span><?php } ?></td>
            <td class="td_name sv_use"><?php if($is_admin) echo $list[$i]['wr_name']; else echo preg_replace('/.(?!..)/u', "$1*", $list[$i]['wr_name']); ?></td>
            <td class="td_date"><?php echo $list[$i]['datetime2'] ?></td>
            <!--<td class="td_num"><?php //echo $list[$i]['wr_hit'] ?></td>-->
            <?php if ($is_good) { ?><td class="td_num"><?php echo $list[$i]['wr_good'] ?></td><?php } ?>
            <?php if ($is_nogood) { ?><td class="td_num"><?php echo $list[$i]['wr_nogood'] ?></td><?php } ?>
        </tr>
        <?php } ?>
        <?php if (count($list) == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
		
        <?php } ?>

 

위에처럼 코딩을 했는데 잘안됩니다..어디가 문제인지 확인부탁드립니다.


감사합니다ㅜㅜ

이 질문에 댓글 쓰기 :

답변 2

 

list.skin.php페이지에서 게시판리스트 출력부분을 만들어서 넣으시면 

페이징처리 부분에서 정상동작하지않습니다.

 

따라서 bbs/list.php 파일에 보시면

165라인에


if ($sca || $stx) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 ";
    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
 
}

이런부분이있습니다.

해당부분의 $sql쪽의 쿼리문을 wr_5 != 1 이런식으로 조건을 추가하여서

수정을해주셔야 페이징이나 검색쪽에서도 올바르게 작동합니다.

 


if ($sca || $stx) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
    $sql = " select * from {$write_table} where wr_is_comment = 0 and wr_5 != 1";
    if(!empty($notice_array))
        $sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
    $sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}

이런식으로 wr_5에 1이없다면 출력하라고 조건을 했죠

하지만 이렇게 하면 관리자로 로그인을 하더라도 해당글은 보이지않습니다.

그렇기때문에


아래와같이 조건을 줘야하죠

조금 응용하시면 가능하리라 봅니다.화이팅하세요


if ($sca || $stx) {
    $sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_order} limit {$from_record}, $page_rows ";
} else {
	if(!$is_admin){
		$sql = " select * from {$write_table} where wr_is_comment = 0 and wr_5 != 1";
		if(!empty($notice_array))
			$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
		$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
	}else{
		$sql = " select * from {$write_table} where wr_is_comment = 0";
		if(!empty($notice_array))
			$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
		$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
	}
}

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

회원로그인

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