그누보드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) {
목록 ~~~

말씀해주신 부분은 list.skin.php에서 수정 및 추가해야하는 부분인가요?
아니면 list.php에 추가해야하는 부분인가요?

만일 list.skin.php라면 검색영역 fileset 안에 추가해야하는 건가요?

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

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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