그누보드5 다중검색 기능.. 도와주세요..

그누보드5 다중검색 기능.. 도와주세요..

QA

그누보드5 다중검색 기능.. 도와주세요..

본문

237007248_1683865335.3367.png237007248_1683865339.5517.png

정상적으로 글쓰기에서 체크박스 및 셀렉트박스로 글쓰기를 완료하면 wr_값으로 리스트에 뿌려지도록 만들었습니다.

 

리스트에서 파견가능 지역(wr_5), 근무형태(wr_4)를 체크하면 리스트에 그 값을 가지고 있는 게시물만 보일 수 있도록 검색기능을 만들려고 합니다..

 

 

list.skin.php

<div class="board_search">
        <div class="write_wrap">
                <form id="fsearch" name="fsearch" method="get">
                <table>
                    <tbody>
                    <tr>
                        <th scope="row"><label for="wr_4">근무형태</label></th>
                        <td colspan="3">
                        <?php
                            $check1 = explode(",", $write['wr_4']);
                            ?>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work1" value="파견"<?php echo in_array("파견", $check1) ? ' checked=""' : '' ?>>
                                <label for="work1">파견</label>
                            </span>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work2" value="정규직"<?php echo in_array("정규직", $check1) ? ' checked=""' : '' ?>>
                                <label for="work2">정규직</label></span>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work3" value="재택"<?php echo in_array("재택", $check1) ? ' checked=""' : '' ?>>
                                <label for="work3">재택</label>
                            </span>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work4" value="반상주"<?php echo in_array("반상주", $check1) ? ' checked=""' : '' ?>>
                                <label for="work4">반상주</label>
                            </span>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work5" value="해외파견"<?php echo in_array("해외파견", $check1) ? ' checked=""' : '' ?>>
                                <label for="work5">해외파견</label>
                            </span>
                            <span class="work_checkbox">
                                <input type="checkbox" name="check1[]" id="work6" value="기타"<?php echo in_array("기타", $check1) ? ' checked=""' : '' ?>>
                                <label for="work6">기타</label>
                            </span>
   
   
                        </td>
                        <th scope="row"><label for="wr_1">경력</label></th>
                            <td>
                                <div class="write_div sel_box">
                                    <select name="wr_1" id="wr_1" class="sel_box_btn">
                                        <option value="">경력</option>
                                        <option value="1년"<?php echo ($write['wr_1'] == "1년") ? " selected" : "";?>>1년</option>
                                        <option value="2년"<?php echo ($write['wr_1'] == "2년") ? " selected" : "";?>>2년</option>
                                        <option value="3년"<?php echo ($write['wr_1'] == "3년") ? " selected" : "";?>>3년</option>
                                        <option value="4년"<?php echo ($write['wr_1'] == "4년") ? " selected" : "";?>>4년</option>
                                        <option value="5년"<?php echo ($write['wr_1'] == "5년") ? " selected" : "";?>>5년</option>
                                        <option value="6년"<?php echo ($write['wr_1'] == "6년") ? " selected" : "";?>>6년</option>
                                        <option value="7년"<?php echo ($write['wr_1'] == "7년") ? " selected" : "";?>>7년</option>
                                        <option value="8년"<?php echo ($write['wr_1'] == "8년") ? " selected" : "";?>>8년</option>
                                        <option value="9년"<?php echo ($write['wr_1'] == "9년") ? " selected" : "";?>>9년</option>
                                        <option value="10년"<?php echo ($write['wr_1'] == "10년") ? " selected" : "";?>>10년</option>
                                        <option value="11년"<?php echo ($write['wr_1'] == "11년") ? " selected" : "";?>>11년</option>
                                        <option value="12년 이상"<?php echo ($write['wr_1'] == "12년 이상") ? " selected" : "";?>>12년 이상</option>
                                    </select>
                                </div>
                            </td>
                        </tr>
                        <tr>
                            <th scope="row"><label for="wr_5">파견가능지역</label></th>
                            <td colspan="5">
                               
                            <?php
                                $check2 = explode(",", $write['wr_5']);
                                ?>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area1" value="서울"<?php echo in_array("서울", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area1">서울</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area2" value="경기"<?php echo in_array("경기", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area2">경기</label></span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area3" value="인천"<?php echo in_array("인천", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area3">인천</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area4" value="부산"<?php echo in_array("부산", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area4">부산</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area5" value="광주"<?php echo in_array("광주", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area5">광주</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area6" value="대전"<?php echo in_array("대전", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area6">대전</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area7" value="울산"<?php echo in_array("울산", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area7">울산</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area8" value="대구"<?php echo in_array("대구", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area8">대구</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area9" value="세종"<?php echo in_array("세종", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area9">세종</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area10" value="강원"<?php echo in_array("강원", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area10">강원</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area11" value="충남"<?php echo in_array("충남", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area11">충남</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area12" value="충북"<?php echo in_array("충북", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area12">충북</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area13" value="경남"<?php echo in_array("경남", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area13">경남</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area14" value="경북"<?php echo in_array("경북", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area14">경북</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area15" value="전남"<?php echo in_array("전남", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area15">전남</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area16" value="전북"<?php echo in_array("전북", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area16">전북</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area17" value="제주도"<?php echo in_array("제주도", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area17">제주도</label>
                                </span>
                                <span class="work_checkbox">
                                    <input type="checkbox" name="check2[]" id="area18" value="해외"<?php echo in_array("해외", $check2) ? ' checked=""' : '' ?>>
                                    <label for="area18">해외</label>
                                </span>
                            </td>
                        </tr>
                   
                    </tbody>
                </table>
               
            <fieldset id="bo_sch">
                    <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" class="sel_box_btn">
                        <?php echo get_board_sfl_select_options($sfl); ?>
                    </select>
                    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
                    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>"  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>
   
            </fieldset>
            </form>
        </div>
       
    </div>

 

지금까지 리스트 영역에서 만진거는 지금 코드가 끝입니다..

다중검색 기능을 하려면 어케해야하는지 알려주시면 감사드리겠습니다..

체크박스 및 셀렉트박스만 선택하고 검색버튼을 누르면
bbs/board.php?check1%5B%5D=재택&wr_1=6년&check2%5B%5D=충북&bo_table=bbs1&sca=&sop=and&sfl=wr_subject&stx=

이렇게 출력되고 있습니다...

검색결과는 리스트  페이지 첫화면 그대로 나오고 있고요..

아 write.skin.php에서 저 체크박스 폼을 그대로 사용하고 있습니다.

 

이 질문에 댓글 쓰기 :

답변 3

1. 우선 선택한값 가져오시구요

$check1 = isset($_GET['check1']) ? $_GET['check1'] : array();
$check2 = isset($_GET['check2']) ? $_GET['check2'] : array();
$wr_1 = isset($_GET['wr_1']) ? $_GET['wr_1'] : '';

 

2. 그리고 체크된 값을 가지고있는 게시물 검색

$postCheck1 = explode(",", $post['wr_4']);
$postCheck2 = explode(",", $post['wr_5']);

 

3. 게시판에 선택된값과 일치한게 있는지 확인

$filteredPosts = array_filter($posts, function($post) use ($check1, $check2, $wr_1) {
$postCheck1 = explode(",", $post['wr_4']);
$postCheck2 = explode(",", $post['wr_5']);

 

4. 위에 값들을 처리

$filteredPosts = array_filter($posts, function($post) use ($check1, $check2, $wr_1) {
    return $check1Match && $check2Match && $wr_1Match;
}

 

5. 그리고 결과물 표시

foreach ($filteredPosts as $post) {
목록 ~~~

제가 잘못 말씀드린게 있는데 해당은 요청 페이지에 결과 처리할때 코드입니다. 보통 페취로 동일 페이지에서 처리하다보니 모르고 습관적으로 동일 페이지를 말씀드렸 ㄷㄷㄷㄷ

답변을 작성하시기 전에 로그인 해주세요.
전체 4

회원로그인

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