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

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

스규스규 2년 전 조회 2,020

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

 

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

 

 

list.skin.php

</p>

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

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

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

<p>                <table></p>

<p>                    <tbody></p>

<p>                    <tr></p>

<p>                        <th scope="row"><label for="wr_4">근무형태</label></th></p>

<p>                        <td colspan="3"></p>

<p>                        <?php</p>

<p>                            $check1 = explode(",", $write['wr_4']);</p>

<p>                            ?></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work1" value="파견"<?php echo in_array("파견", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work1">파견</label></p>

<p>                            </span></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work2" value="정규직"<?php echo in_array("정규직", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work2">정규직</label></span></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work3" value="재택"<?php echo in_array("재택", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work3">재택</label></p>

<p>                            </span></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work4" value="반상주"<?php echo in_array("반상주", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work4">반상주</label></p>

<p>                            </span></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work5" value="해외파견"<?php echo in_array("해외파견", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work5">해외파견</label></p>

<p>                            </span></p>

<p>                            <span class="work_checkbox"></p>

<p>                                <input type="checkbox" name="check1[]" id="work6" value="기타"<?php echo in_array("기타", $check1) ? ' checked=""' : '' ?>></p>

<p>                                <label for="work6">기타</label></p>

<p>                            </span></p>

<p>   </p>

<p>   </p>

<p>                        </td></p>

<p>                        <th scope="row"><label for="wr_1">경력</label></th></p>

<p>                            <td></p>

<p>                                <div class="write_div sel_box"></p>

<p>                                    <select name="wr_1" id="wr_1" class="sel_box_btn"></p>

<p>                                        <option value="">경력</option></p>

<p>                                        <option value="1년"<?php echo ($write['wr_1'] == "1년") ? " selected" : "";?>>1년</option></p>

<p>                                        <option value="2년"<?php echo ($write['wr_1'] == "2년") ? " selected" : "";?>>2년</option></p>

<p>                                        <option value="3년"<?php echo ($write['wr_1'] == "3년") ? " selected" : "";?>>3년</option></p>

<p>                                        <option value="4년"<?php echo ($write['wr_1'] == "4년") ? " selected" : "";?>>4년</option></p>

<p>                                        <option value="5년"<?php echo ($write['wr_1'] == "5년") ? " selected" : "";?>>5년</option></p>

<p>                                        <option value="6년"<?php echo ($write['wr_1'] == "6년") ? " selected" : "";?>>6년</option></p>

<p>                                        <option value="7년"<?php echo ($write['wr_1'] == "7년") ? " selected" : "";?>>7년</option></p>

<p>                                        <option value="8년"<?php echo ($write['wr_1'] == "8년") ? " selected" : "";?>>8년</option></p>

<p>                                        <option value="9년"<?php echo ($write['wr_1'] == "9년") ? " selected" : "";?>>9년</option></p>

<p>                                        <option value="10년"<?php echo ($write['wr_1'] == "10년") ? " selected" : "";?>>10년</option></p>

<p>                                        <option value="11년"<?php echo ($write['wr_1'] == "11년") ? " selected" : "";?>>11년</option></p>

<p>                                        <option value="12년 이상"<?php echo ($write['wr_1'] == "12년 이상") ? " selected" : "";?>>12년 이상</option></p>

<p>                                    </select></p>

<p>                                </div></p>

<p>                            </td></p>

<p>                        </tr></p>

<p>                        <tr></p>

<p>                            <th scope="row"><label for="wr_5">파견가능지역</label></th></p>

<p>                            <td colspan="5"></p>

<p>                               </p>

<p>                            <?php</p>

<p>                                $check2 = explode(",", $write['wr_5']);</p>

<p>                                ?></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area1" value="서울"<?php echo in_array("서울", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area1">서울</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area2" value="경기"<?php echo in_array("경기", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area2">경기</label></span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area3" value="인천"<?php echo in_array("인천", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area3">인천</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area4" value="부산"<?php echo in_array("부산", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area4">부산</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area5" value="광주"<?php echo in_array("광주", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area5">광주</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area6" value="대전"<?php echo in_array("대전", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area6">대전</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area7" value="울산"<?php echo in_array("울산", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area7">울산</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area8" value="대구"<?php echo in_array("대구", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area8">대구</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area9" value="세종"<?php echo in_array("세종", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area9">세종</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area10" value="강원"<?php echo in_array("강원", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area10">강원</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area11" value="충남"<?php echo in_array("충남", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area11">충남</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area12" value="충북"<?php echo in_array("충북", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area12">충북</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area13" value="경남"<?php echo in_array("경남", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area13">경남</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area14" value="경북"<?php echo in_array("경북", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area14">경북</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area15" value="전남"<?php echo in_array("전남", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area15">전남</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area16" value="전북"<?php echo in_array("전북", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area16">전북</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area17" value="제주도"<?php echo in_array("제주도", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area17">제주도</label></p>

<p>                                </span></p>

<p>                                <span class="work_checkbox"></p>

<p>                                    <input type="checkbox" name="check2[]" id="area18" value="해외"<?php echo in_array("해외", $check2) ? ' checked=""' : '' ?>></p>

<p>                                    <label for="area18">해외</label></p>

<p>                                </span></p>

<p>                            </td></p>

<p>                        </tr></p>

<p>                   </p>

<p>                    </tbody></p>

<p>                </table></p>

<p>               </p>

<p>            <fieldset id="bo_sch"></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>                    <label for="sfl" class="sound_only">검색대상</label></p>

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

<p>                        <?php echo get_board_sfl_select_options($sfl); ?></p>

<p>                    </select></p>

<p>                    <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label></p>

<p>                    <input type="text" name="stx" value="<?php echo stripslashes($stx) ?>"  id="stx" class="sch_input" size="25" maxlength="20" placeholder="검색어를 입력해주세요"></p>

<p>                    <button type="submit" value="검색" class="sch_btn"><i class="fa fa-search" aria-hidden="true"></i><span class="sound_only">검색</span></button></p>

<p>   </p>

<p>            </fieldset></p>

<p>            </form></p>

<p>        </div></p>

<p>       </p>

<p>    </div></p>

<p>
 

지금까지 리스트 영역에서 만진거는 지금 코드가 끝입니다.. 다중검색 기능을 하려면 어케해야하는지 알려주시면 감사드리겠습니다.. 체크박스 및 셀렉트박스만 선택하고 검색버튼을 누르면 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 포인트
A
2년 전

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개

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

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

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

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

testqwer
2년 전

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

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

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

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

로그인