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

237007248_1683865335.3367.png237007248_1683865339.5517.png

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

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

list.skin.php

Copy
<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개

채택된 답변
+20 포인트

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) {
목록 ~~~

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

답변에 대한 댓글 6개

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

만일 list.skin.php라면 검색영역 fileset 안에 추가해야하는 건가요?
list.skin.php 에 수정입니다.
밥상까지 차려주셨는데... 제가 그누보드 신생아라..
혹시 말씀해주신 부분들을 어디에 추가해야하는지 알려주실 수 있을까요...

죄송합니다...ㅜ
제가 잘못 말씀드린게 있는데 해당은 요청 페이지에 결과 처리할때 코드입니다. 보통 페취로 동일 페이지에서 처리하다보니 모르고 습관적으로 동일 페이지를 말씀드렸 ㄷㄷㄷㄷ
아하...
그럼 보여주신 코드는 현재는 제가 못쓰는 코드인가요..?ㅜㅜ
아니요 결과 요청의 답변 페이지에 사용하시면 필요하신 검색 결과 목록이 보이시는거죠

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

검색어로 넘어온 배열 값을 풀어서 or 조건으로 검색하신다고 생각하시면 될거에요.

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

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

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

로그인
🐛 버그신고