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

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

QA

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

답변 2

본문

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

 

구현하고싶은 내용은

 

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

 

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 ";
	}
}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,119
© SIRSOFT
현재 페이지 제일 처음으로