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

게시판 검색결과 페이지에서 더보기 버튼 채택완료

초보자아 2년 전 조회 1,132

 

https://sir.kr/g5_skin/20427

이 분의 더보기버튼 스킨을 써서 응용했는데

게시판 검색결과 페이지에서 더보기 버튼을 누르면 검색결과에 해당되지않은 게시물도 같이 보여집니다.

 

하지만 저는

1, 검색결과 페이지에서 더보기를 눌렀을 때 검색결과만 나오도록 하고

2. 만약 검색결과에 게시물이 없다면 더보기를 없애고싶습니다.

 

검색해도 나오지 않고 스스로 계속 깨작깨작 만져도 오히려 악화만 될뿐이네요...

혹시 방법을 알려주시면 정말로 감사하겠습니다!

 

아래는 list.php 코드입니다.

 

</p>

<p><?php</p>

<p>if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p> </p>

<p>// 선택옵션으로 인해 셀합치기가 가변적으로 변함</p>

<p>$colspan = 5;</p>

<p> </p>

<p>if ($is_checkbox) $colspan++;</p>

<p>if ($is_good) $colspan++;</p>

<p>if ($is_nogood) $colspan++;</p>

<p> </p>

<p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨</p>

<p>add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);</p>

<p>?></p>

<p> </p>

<p><section id="sc_1" class="co"></p>

<p>    <div class="sc_mid"></p>

<p>        <!-- input --></p>

<p>        <!-- 게시판 검색 시작 { --></p>

<p>        <div class="bo_sch_wrap"></p>

<p>            <h2>게시판 제목</h2></p>

<p>            <!-- 게시판 검색 시작 { --></p>

<p>            <form name="fsearch" method="get" id="formbox"></p>

<p>                <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>"></p>

<p>                <!-- <input type="hidden" name="sca" value="<?php echo $sca ?>"> --></p>

<p>                <input type="hidden" name="sop" value="and"></p>

<p>                <div class="sel1box selbox"></p>

<p>                    <select name="sfl" id="sfl"></p>

<p>                        <option value="wr_subject">제목</option></p>

<p>                        <option value="wr_content">내용</option></p>

<p>                        <option value="wr_subject||wr_content">제목+내용</option></p>

<p>                        <option value="wr_name,1">글쓴이</option></p>

<p>                        <option value="wr_name,0">글쓴이(코)</option></p>

<p>                    </select></p>

<p>                </div></p>

<p>                <div class="sel2box selbox"></p>

<p>                    <?php if ($is_category) { ?></p>

<p>                    <!--</p>

<p>        <form name="fcategory" method="get"></p>

<p>            <input type="hidden" name="bo_table" value="<?php echo $bo_table; ?>"></p>

<p>        --></p>

<p>                    <select name="sca" id="cat"></p>

<p>                        <option value=''>전체</option></p>

<p>                        <?php echo get_category_option($bo_table, $sca); // SELECT OPTION 태그로 넘겨받음 ?></p>

<p>                    </select></p>

<p>                    <!--</p>

<p>            <input type="submit" value="확인" class="sel_btn"></p>

<p>        </form></p>

<p>        --></p>

<p>                    <?php } ?></p>

<p>                </div></p>

<p> </p>

<p>                <div class="sch_bar"></p>

<p>                    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>" required id="stx"</p>

<p>                        class="sch_input" size="25" maxlength="20" placeholder=" 무엇을 도와드릴까요?"></p>

<p>                    <button type="submit" value="검색" class="sch_btn"><i class="fa-solid fa-magnifying-glass"></i></p>

<p>                        <span class="xbtn"><i class="fa-solid fa-xmark"></i></span></p>

<p>                    </button></p>

<p>                </div></p>

<p>            </form></p>

<p>            </fieldset></p>

<p>        </div></p>

<p>    </div></p>

<p></section></p>

<p> </p>

<p><!-- top button --></p>

<p><a href="#" class="top_button"></p>

<p>    <i class="xi-angle-up"></i></p>

<p></a></p>

<p> </p>

<p><!-- 게시판 목록 시작 { --></p>

<p><section id="bo_list"></p>

<p>    <form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);"</p>

<p>        method="post"></p>

<p>        <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>"></p>

<p>        <input type="hidden" name="sfl" value="<?php echo $sfl ?>"></p>

<p>        <input type="hidden" name="stx" value="<?php echo $stx ?>"></p>

<p>        <input type="hidden" name="spt" value="<?php echo $spt ?>"></p>

<p>        <input type="hidden" name="sca" value="<?php echo $sca ?>"></p>

<p>        <input type="hidden" name="sst" value="<?php echo $sst ?>"></p>

<p>        <input type="hidden" name="sod" value="<?php echo $sod ?>"></p>

<p>        <input type="hidden" name="page" value="<?php echo $page ?>"></p>

<p>        <input type="hidden" name="sw" value=""></p>

<p> </p>

<p>        <div class="tbl_head01 tbl_wrap"></p>

<p>            <table></p>

<p>                <thead></p>

<p>                    <tr></p>

<p>                        <?php if ($is_checkbox) { ?></p>

<p>                        <th scope="col" class="all_chk chk_box"></p>

<p>                            <input type="checkbox" id="chkall"</p>

<p>                                onclick="if (this.checked) all_checked(true); else all_checked(false);"</p>

<p>                                class="selec_chk"></p>

<p>                            <label for="chkall"></p>

<p>                                <p>전체선택</p></p>

<p>                            </label></p>

<p>                        </th></p>

<p>                        <?php } ?></p>

<p>                        <div id="bo_list_total"></p>

<p>                            <span>Total <?php echo number_format($total_count) ?>건</span></p>

<p>                        </div></p>

<p>                    </tr></p>

<p>                </thead></p>

<p>                <tbody id="ajax_data"></p>

<p>                    <?php</p>

<p>        for ($i=0; $i<count($list); $i++) {</p>

<p>            if ($i%2==0) $lt_class = "even";</p>

<p>            else $lt_class = "";</p>

<p>        ?></p>

<p>                    <tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?>"></p>

<p>                        <?php if ($is_checkbox) { ?></p>

<p>                        <td class="td_chk chk_box"></p>

<p>                            <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>"</p>

<p>                                id="chk_wr_id_<?php echo $i ?>"></p>

<p>                        </td></p>

<p>                        <?php } ?></p>

<p> </p>

<p>                        <td class="td_subject td_news"</p>

<p>                            style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px"> <?php</p>

<p>                if ($is_category && $list[$i]['ca_name']) {</p>

<p>                ?></p>

<p>                            <a href="<?php echo $list[$i]['ca_name_href'] ?>"</p>

<p>                                class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a></p>

<p>                            <?php } ?></p>

<p>                            <div class="list_box"></p>

<p>                                <div class="bo_h2"></p>

<p>                                    <a href="<?php echo $list[$i]['href'] ?>"></p>

<p>                                        <?php echo $list[$i]['icon_reply'] ?></p>

<p>                                        <?php</p>

<p>                            if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);</p>

<p>                        ?></p>

<p>                                        <?php echo $list[$i]['subject'] ?></p>

<p>                                    </a></p>

<p>                                </div></p>

<p>                                <div class="bo_date"></p>

<p>                                    <?php echo $list[$i]['datetime'] ?></p>

<p>                                </div></p>

<p>                            </div></p>

<p>                            <a href="#"></p>

<p>                                <div class="new_arr"></div></p>

<p>                            </a></p>

<p>                        </td></p>

<p> </p>

<p>                    </tr></p>

<p>                    <?php } ?></p>

<p>                    <?php if (count($list) == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table" datano="no">게시물이 없습니다.</td></tr>'; } ?></p>

<p>                </tbody></p>

<p>            </table></p>

<p>        </div></p>

<p> </p>

<p>        <div class="more_button">더보기 +</div></p>

<p> </p>

<p>        <!-- 게시판 페이지 정보 및 버튼 시작 { --></p>

<p>        <div id="bo_btn_top"></p>

<p>            <ul class="btn_bo_user"></p>

<p>                <?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i</p>

<p>                            class="fa-solid fa-gear"></i></a></li><?php } ?></p>

<p>                <?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i</p>

<p>                            class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li></p>

<p>                <?php } ?></p>

<p>                <?php if ($is_admin) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn" title="글쓰기"><i</p>

<p>                            class="fa-solid fa-pen"></i></a></li></p>

<p>                <?php } ?></p>

<p>                <?php if ($is_admin == 'super' || $is_auth) {  ?></p>

<p>                <li></p>

<p>                    <button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="리스트 옵션"><i</p>

<p>                            class="fa-solid fa-ellipsis-vertical"></i></button></p>

<p>                    <?php if ($is_checkbox) { ?></p>

<p>                    <ul class="more_opt is_list_btn"></p>

<p>                        <li><button type="submit" name="btn_submit" value="선택삭제"</p>

<p>                                onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i></p>

<p>                                선택삭제</button></li></p>

<p>                        <li><button type="submit" name="btn_submit" value="선택복사"</p>

<p>                                onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i></p>

<p>                                선택복사</button></li></p>

<p>                        <li><button type="submit" name="btn_submit" value="선택이동"</p>

<p>                                onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i></p>

<p>                                선택이동</button></li></p>

<p>                    </ul></p>

<p>                    <?php } ?></p>

<p>                </li></p>

<p>                <?php }  ?></p>

<p>            </ul></p>

<p>        </div></p>

<p>        <!-- } 게시판 페이지 정보 및 버튼 끝 --></p>

<p>    </form></p>

<p></section></p>

<p> </p>

<p><?php if($is_checkbox) { ?></p>

<p><noscript></p>

<p>    <p>자바스크립트를 사용하지 않는 경우
별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p></p>

<p></noscript></p>

<p><?php } ?></p>

<p>

 </p>

<p><!-- 페이지 --></p>

<p><span id="page_n" style="display:none;">2</span></p>

<p> </p>

<p><script type="text/javascript"></p>

<p><!--</p>

<p>$(document).ready(function() {</p>

<p> </p>

<p>    $(".more_button").click(function() {</p>

<p>        $(this).html('<i class="fa fa-spinner fa-spin"></i>');</p>

<p> </p>

<p>        var disp_li_length = $("#gallery_json > li").length;</p>

<p> </p>

<p>        var page_n = $('#page_n').html();</p>

<p>        $.get("<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&ajax_ck=1&sca=<?php echo urlencode($sca) ?>&page=" +</p>

<p>            page_n,</p>

<p>            function(data) {</p>

<p>                var append_data = $(data).find('#ajax_data').html();</p>

<p>                var cking = $(data).find('.empty_table').attr("datano");</p>

<p> </p>

<p>                if (cking != "no") {</p>

<p>                    $('#page_txt').html('');</p>

<p>                    $('#ajax_data').append(append_data);</p>

<p>                    $('#page_n').html(parseInt(page_n) + 1);</p>

<p>                    $(".more_button").html('더보기 +');</p>

<p>                } else {</p>

<p>                    alert('게시물이 존재하지 않습니다.');</p>

<p>                    $(".more_button").html('더보기 +');</p>

<p>                }</p>

<p>            });</p>

<p> </p>

<p>    });</p>

<p>});</p>

<p>//</p>

<p>--></p>

<p></script></p>

<p> </p>

<p><script></p>

<p>jQuery(function(x) {</p>

<p>    $(".bo_sch_wrap h2").on("click", function() {</p>

<p>        window.location = "<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>";</p>

<p>    });</p>

<p>});</p>

<p></script></p>

<p> </p>

<p><?php if ($is_checkbox) { ?></p>

<p><script></p>

<p>function all_checked(sw) {</p>

<p>    var f = document.fboardlist;</p>

<p> </p>

<p>    for (var i = 0; i < f.length; i++) {</p>

<p>        if (f.elements[i].name == "chk_wr_id[]")</p>

<p>            f.elements[i].checked = sw;</p>

<p>    }</p>

<p>}</p>

<p> </p>

<p>function fboardlist_submit(f) {</p>

<p>    var chk_count = 0;</p>

<p> </p>

<p>    for (var i = 0; i < f.length; i++) {</p>

<p>        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)</p>

<p>            chk_count++;</p>

<p>    }</p>

<p> </p>

<p>    if (!chk_count) {</p>

<p>        alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");</p>

<p>        return false;</p>

<p>    }</p>

<p> </p>

<p>    if (document.pressed == "선택복사") {</p>

<p>        select_copy("copy");</p>

<p>        return;</p>

<p>    }</p>

<p> </p>

<p>    if (document.pressed == "선택이동") {</p>

<p>        select_copy("move");</p>

<p>        return;</p>

<p>    }</p>

<p> </p>

<p>    if (document.pressed == "선택삭제") {</p>

<p>        if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))</p>

<p>            return false;</p>

<p> </p>

<p>        f.removeAttribute("target");</p>

<p>        f.action = "./board_list_update.php";</p>

<p>    }</p>

<p> </p>

<p>    return true;</p>

<p>}</p>

<p> </p>

<p>// 선택한 게시물 복사 및 이동</p>

<p>function select_copy(sw) {</p>

<p>    var f = document.fboardlist;</p>

<p> </p>

<p>    if (sw == "copy")</p>

<p>        str = "복사";</p>

<p>    else</p>

<p>        str = "이동";</p>

<p> </p>

<p>    var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");</p>

<p> </p>

<p>    f.sw.value = sw;</p>

<p>    f.target = "move";</p>

<p>    f.action = "./move.php";</p>

<p>    f.submit();</p>

<p>}</p>

<p>// 게시판 리스트 관리자 옵션</p>

<p>jQuery(function($) {</p>

<p>    $(".btn_more_opt.is_list_btn").on("click", function(e) {</p>

<p>        e.stopPropagation();</p>

<p>        $(".more_opt.is_list_btn").toggle();</p>

<p>    });</p>

<p>    $(document).on("click", function(e) {</p>

<p>        if (!$(e.target).closest('.is_list_btn').length) {</p>

<p>            $(".more_opt.is_list_btn").hide();</p>

<p>        }</p>

<p>    });</p>

<p>});</p>

<p></script></p>

<p><?php } ?></p>

<p>

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

답변 3개

채택된 답변
+20 포인트
플래토
2년 전

검색기능이 원활하려면

 

검색어 / 조건에 해당하는 값을 더보기의 데이타를 가져오는 로직에 동일하게 맞춰주셔야합니다.

 

검색을 할때 넘겨주는 정보는

</span></span></p>

<pre>
<span style="font-size:11pt;"><span style="font-family:맑은 고딕;"><code> <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="sca" value="<?php echo $sca ?>">
        <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 ?>"></code></span></span></pre>

<p><span style="font-size:11pt;"><span style="font-family:맑은 고딕;"><code>

들이 있는데

이중에서 

 

더보기에 넘기는 서버호출내용은

</span></span></p>

<p> </p>

<pre>
<span style="font-size:11pt;"><span style="font-family:맑은 고딕;"><code>$.get("<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&ajax_ck=1&sca=<?php echo urlencode($sca) ?>&page=" +
            page_n,</code></span></span></pre>

<p><span style="font-size:11pt;"><span style="font-family:맑은 고딕;"><code>

의 내용에 따라

sca 와

page가 있네요

page는 더보기할때마다 증가하게 구성되어있으니

 

sca와 page를 제외한 나머지를 

get parameter방식으로 추가를 하시면 될것같습니다.

 

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

답변에 대한 댓글 1개

초보자아
2년 전
검색 로직 동일하게 맞춰주기! 배워갑니다. 알려주셔서 감사합니다!

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

더보기 눌렀을때 페이지 뿐만아니라 검색조건이 안넘어가서 그런거 같습니다.

stx 와 sfl 을 같이 보내시면 되실거 같아요

임시로 이렇게 해보시겠어요?

$.get("<?=G5_URL?>/bbs/board.php?bo_table=<?=$bo_table?>&ajax_ck=1&sca=<?php echo urlencode($sca) ?>&page=" + page_n + "&sfl=<?=$sfl?>&stx=<?=$stx?>",

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

답변에 대한 댓글 1개

초보자아
2년 전
보기전에 위 코드와 비슷하게 적었더니 작동되더라구요!! 그래도 알려주셔서 감사합니다!

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

게시판 검색결과 페이지에서 더보기 버튼을 누르면 검색결과에 해당되지않은 게시물도 같이 보여집니다......

===

구체적으로 무엇을 검색하신 건가요?

단어 검색인 경우 댓글에 해당 단어가 있을 수 있습니다.

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

답변에 대한 댓글 1개

초보자아
2년 전
단어를 검색하는건데 더보기를 누르면 해당단어가 없는데도 나옵니다..

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

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

로그인