그누보드 게시판 선택삭제쪽과 검색쪽 충돌

그누보드 게시판 선택삭제쪽과 검색쪽 충돌

QA

그누보드 게시판 선택삭제쪽과 검색쪽 충돌

본문

3076557694_1698800805.6434.png

안녕하세요!

게시판을 커스텀했는데 체크박스 체크 후 선택삭제,선택복사,선택이동 누르면 검색창에 저 표시가 나옵니다. 그런데 검색어를 쓰고 누르면 작동이 되고, zoom 아이콘 클릭하면 검색은 안되고 선택이동팝업이 뜨는데 어디서 충돌이 났는지 찾기가 어려워 질문드립니다!

오늘도 좋은하루보내세요!

 

list.skin.php 코드입니다.

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
 
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
 
$bo_fieldm = array();
if ($board['bo_fieldm'] != '') {
    $bo_fieldm = json_decode($board['bo_fieldm'], true);
}

 
?>
<h4 class="tab-tit">대한민국 건축물 비구조요소 내진설치 실적</h4>
<div class="bar"></div>
<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 gr_id "; // 그룹이 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 )
                $str .= 'class="active"';
                $str .= '>'.$row['bo_subject'].'</a></li>';
            }
            echo $str;
        ?>
</ul>
 
<!-- 게시판 목록 시작 { -->
<div id="bo_gall" style="width:<?php echo $width; ?>">

 
    <form name="fboardlist"  id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
    <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">
    <input type="hidden" name="sw" value="">
 
    <!-- 게시판 페이지 정보 및 버튼 시작 { -->
    <div id="bo_btn_top">
        <div id="bo_list_total">
            <span>Total <?php echo number_format($total_count) ?>건</span>
            <?php echo $page ?> 페이지
        </div>
 
        <?php if ($rss_href || $write_href) { ?>
        <ul class="btn_bo_user">
            <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
            <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
            <?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i class="fa fa-pen" aria-hidden="true"></i><span class="sound_only">글쓰기</span></a></li><?php } ?>
            <?php if ($is_admin == 'super' || $is_auth) {  ?>
            <li>
                <button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
                <?php if ($is_checkbox) { ?>    
                <ul class="more_opt is_list_btn">  
                    <li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>
                    <li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>
                    <li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>
                </ul>
                <?php } ?>
            </li>
            <?php }  ?>
        </ul>
        <?php } ?>
    </div>
    <!-- } 게시판 페이지 정보 및 버튼 끝 -->
 
    <?php if ($is_checkbox) { ?>
    <div id="gall_allchk" class="all_chk chk_box">
        <input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
        <label for="chkall">
            <span></span>
            <b class="sound_only">현재 페이지 게시물 </b> 전체선택
        </label>
    </div>
    <?php } ?>
 
    <ul id="gall_ul" class="gall_row">
 
        <li class="<?php echo implode(' ', $classes); ?>">
            <div class="gall_box">
                <div class="gall_con">
 
                    <div class="gall_text_href">
 
                         <div class="list-spec">
                            <table>
                                <tr class="table-top">
                                    <td>번호</td>
                                    <td>공사명</td>
                                    <td>품목</td>
                                    <td>계약처</td>
                                    <td>일자</td>
                                </tr>
                                <?php for ($i=0; $i<count($list); $i++) {
 
                                $classes = array();
 
                                $classes[] = 'table-wr';
                                $classes[] = 'col-gn-'.$bo_gallery_cols;
 
                                if( $i && ($i % $bo_gallery_cols == 0) ){
                                    $classes[] = 'box_clear';
                                }
 
                                if( $wr_id && $wr_id == $list[$i]['wr_id'] ){
                                    $classes[] = 'gall_now';
                                }
                                ?>
                                <tr class="table-wr">
                                    <td class="td_num2"><?php echo $list[$i]['num']; ?></td>
                                    <td>
                                        <a href="<?php echo $list[$i]['href'] ?>" class="bo_tit">
                                            <?php echo $list[$i]['subject'] ?>                      
                                        </a>
                                    </td>
                                        <?php
                                        foreach ($bo_fieldm as $k => $v) {
                                            if($v['lv'] != '1') continue;
                                        ?>
                               
                                        <!-- <th><?php echo get_text($v['name'])?></th> -->
                                    <td><?php echo get_text($list[$i][$k]); ?></td>
                               
                                <?php } ?>
                                    <?php if ($is_checkbox) { ?>
                                    <td class="gall_chk chk_box">
                                        <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk">
                                        <label for="chk_wr_id_<?php echo $i ?>">
                                            <span></span>
                                            <b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
                                        </label>
                                    </td>
                                    <?php } ?>
                                </tr>
                                <?php } ?>
                            </table>
                        </div>

 
                         <span class="bo_cnt"><?php echo utf8_strcut(strip_tags($list[$i]['wr_content']), 68, '..'); ?></span>
                    </div>
 
                    <div class="gall_info">
                        <span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?>
                        <span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>
                        <span class="gall_view"><span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></span>
                    </div>
                    <div class="gall_option">
                        <?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?>
                        <?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?>          
                    </div>
                </div>
            </div>
        </li>
       
        <?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?>
    </ul>
<!-- 게시판 검색 시작 { -->
    <div class="bo_sch_wrap">  
        <fieldset class="bo_sch">
            <form name="fsearch" method="get">
            <input type="hidden" name="sfx" value="wr_subject||wr_1||wr_2||wr_3">
            <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
            <input type="hidden" name="sca" value="<?php echo $sca ?>">
            <input type="hidden" name="sop" value="and">
            <label for="sfl" class="sound_only">검색대상</label>
            <select name="sfl" id="sfl">
                <option value="wr_subject"<?php echo get_selected($sfl, 'wr_subject', true); ?>>공사명</option>
                <option value="wr_1"<?php echo get_selected($sfl, 'wr_1'); ?>>품목</option>
                <option value="wr_2"<?php echo get_selected($sfl, 'wr_2'); ?>>계약처</option>
                <option value="wr_2"<?php echo get_selected($sfl, 'wr_3'); ?>>일자</option>
            </select>
            <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
            <div class="sch_bar">
                <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요">
                <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button>
            </div>
            <button type="button" class="bo_sch_cls"><i class="fa fa-times" aria-hidden="true"></i><span class="sound_only">닫기</span></button>
            </form>
        </fieldset>
    </div>
<!-- } 게시판 검색 끝 -->
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
 
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
    var f = document.fboardlist;
 
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}
 
function fboardlist_submit(f) {
    var chk_count = 0;
 
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }
 
    if (!chk_count) {
        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }
 
    if(document.pressed == "선택복사") {
        select_copy("copy");
        return;
    }
 
    if(document.pressed == "선택이동") {
        select_copy("move");
        return;
    }
 
    if(document.pressed == "선택삭제") {
        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
            return false;
 
        f.removeAttribute("target");
        f.action = g5_bbs_url+"/board_list_update.php";
    }
 
    return true;
}
 
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
    var f = document.fboardlist;
 
    if (sw == "copy")
        str = "복사";
    else
        str = "이동";
 
    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
 
    f.sw.value = sw;
    f.target = "move";
    f.action = g5_bbs_url+"/move.php";
    f.submit();
}
 
// 게시판 리스트 관리자 옵션
jQuery(function($){
    $(".btn_more_opt.is_list_btn").on("click", function(e) {
        e.stopPropagation();
        $(".more_opt.is_list_btn").toggle();
    });
    $(document).on("click", function (e) {
        if(!$(e.target).closest('.is_list_btn').length) {
            $(".more_opt.is_list_btn").hide();
        }
    });
});
</script>
<?php } ?>
<!-- } 게시판 목록 끝 -->
 

이 질문에 댓글 쓰기 :

답변 2

선택삭제 폼의 닫는 폼태그가 없네요. 그래서 선택삭제폼안에 검색폼이 들어가게 인식되어서 그렇습니다. 선택삭제에 </form>으로 닫고, 검색폼은 밖으로 빼보세요

태그의 열기 닫기 태그의 문제로 보여집니다.
기능 검색 처리시 님의 말씀처럼 폼태그를 검색과 분리해서 처리하셔야 합니다.

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

회원로그인

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