그누보드5 검색영역(체크박스 및 셀렉트 박스 검색)
관련링크
본문
체크박스 및 셀렉트 박스 검색 필터에서 막혀서.. 도움을 청하고자 글을 씁니다. .ㅠ
일단 글쓰기와 리스트 및 뷰 페이지는 잘 나오고 있습니다.
뷰페이지 및 리스트페이지.이렇게 잘 나오는걸 보면 wr_값은 저장이 된거 같은데..
리스트 페이지에서 근무 형태 및 파견가능지역, 경력으로 검색을 하려고 하면 어떻게 해야하는지를 모르겠습니다..
다중검색 스킨 및 여러가지를 찾아 봤지만.. 어떻게 해야할지 모르겠습니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 8;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
<?php
include_once(G5_LIB_PATH.'/common.lib.php');
?>
<!-- 게시판 목록 시작 { -->
<div id="bo_list" style="width:<?php echo $width; ?>">
<!-- 게시판 카테고리 시작 { -->
<?php if ($is_category) { ?>
<nav id="bo_cate">
<h2><?php echo $board['bo_subject'] ?> 카테고리</h2>
<ul id="bo_cate_ul">
<?php echo $category_option ?>
</ul>
</nav>
<?php } ?>
<!-- } 게시판 카테고리 끝 -->
<div class="tbl_head01 tbl_wrap">
<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" class='wr_4' value="파견"<?php echo in_array("파견", $check1) ? ' checked=""' : '' ?>>
<label for="work1">파견</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check1[]" id="work2" class='wr_4' value="정규직"<?php echo in_array("정규직", $check1) ? ' checked=""' : '' ?>>
<label for="work2">정규직</label></span>
<span class="work_checkbox">
<input type="checkbox" name="check1[]" id="work3" class='wr_4' value="재택"<?php echo in_array("재택", $check1) ? ' checked=""' : '' ?>>
<label for="work3">재택</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check1[]" id="work4" class='wr_4' value="반상주"<?php echo in_array("반상주", $check1) ? ' checked=""' : '' ?>>
<label for="work4">반상주</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check1[]" id="work5" class='wr_4' value="해외파견"<?php echo in_array("해외파견", $check1) ? ' checked=""' : '' ?>>
<label for="work5">해외파견</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check1[]" id="work6" class='wr_4' 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" onchange="submit()">
<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>
<input type="hidden" name="wr_1" value="<?php echo $write['wr_1'] ?>">
</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" class='wr_5'value="서울"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("서울", $check2) ? ' checked=""' : '' ?>>
<label for="area1">서울</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area2" class='wr_5'value="경기"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("경기", $check2) ? ' checked=""' : '' ?>>
<label for="area2">경기</label></span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area3" class='wr_5'value="인천"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("인천", $check2) ? ' checked=""' : '' ?>>
<label for="area3">인천</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area4" class='wr_5'value="부산"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("부산", $check2) ? ' checked=""' : '' ?>>
<label for="area4">부산</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area5" class='wr_5'value="광주"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("광주", $check2) ? ' checked=""' : '' ?>>
<label for="area5">광주</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area6" class='wr_5'value="대전"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("대전", $check2) ? ' checked=""' : '' ?>>
<label for="area6">대전</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area7" class='wr_5'value="울산"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("울산", $check2) ? ' checked=""' : '' ?>>
<label for="area7">울산</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area8" class='wr_5'value="대구"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("대구", $check2) ? ' checked=""' : '' ?>>
<label for="area8">대구</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area9" class='wr_5'value="세종"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("세종", $check2) ? ' checked=""' : '' ?>>
<label for="area9">세종</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area10" class='wr_5' value="강원"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("강원", $check2) ? ' checked=""' : '' ?>>
<label for="area10">강원</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area11" class='wr_5' value="충남"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("충남", $check2) ? ' checked=""' : '' ?>>
<label for="area11">충남</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area12" class='wr_5' value="충북"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("충북", $check2) ? ' checked=""' : '' ?>>
<label for="area12">충북</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area13" class='wr_5' value="경남"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("경남", $check2) ? ' checked=""' : '' ?>>
<label for="area13">경남</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area14" class='wr_5' value="경북"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("경북", $check2) ? ' checked=""' : '' ?>>
<label for="area14">경북</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area15" class='wr_5' value="전남"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("전남", $check2) ? ' checked=""' : '' ?>>
<label for="area15">전남</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area16" class='wr_5' value="전북"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("전북", $check2) ? ' checked=""' : '' ?>>
<label for="area16">전북</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area17" class='wr_5' value="제주도"<?php echo get_selected($sfl, 'wr_5'); ?><?php echo in_array("제주도", $check2) ? ' checked=""' : '' ?>>
<label for="area17">제주도</label>
</span>
<span class="work_checkbox">
<input type="checkbox" name="check2[]" id="area18" class='wr_5' value="해외"<?php echo get_selected($sfl, 'wr_5'); ?><?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="or">
<input type="hidden" name="chk_wr_id" value="">
<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>
<form name="fboardlist" id="fboardlist" action="<?php echo G5_BBS_URL; ?>/board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<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 ?>">
<input type="hidden" name="sw" value="">
<!-- 게시판 페이지 정보 및 버튼 시작 { -->
<div id="bo_btn_top">
<div id="bo_list_total">
<span>전체 <?php echo number_format($total_count) ?>건</span>
</div>
<ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<?php if ($is_admin == 'super' || $is_auth) { ?>
<li>
<button type="button" class="btn_more_opt is_list_btn btn_b01 btn" title="게시판 리스트 옵션"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">게시판 리스트 옵션</span></button>
<?php if ($is_checkbox) { ?>
<ul class="more_opt is_list_btn">
<li><button type="submit" name="btn_submit" value="선택삭제" onclick="document.pressed=this.value"><i class="fa fa-trash-o" aria-hidden="true"></i> 선택삭제</button></li>
<li><button type="submit" name="btn_submit" value="선택복사" onclick="document.pressed=this.value"><i class="fa fa-files-o" aria-hidden="true"></i> 선택복사</button></li>
<li><button type="submit" name="btn_submit" value="선택이동" onclick="document.pressed=this.value"><i class="fa fa-arrows" aria-hidden="true"></i> 선택이동</button></li>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>
<!-- } 게시판 페이지 정보 및 버튼 끝 -->
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $board['bo_subject'] ?> 목록</caption>
<thead>
<tr>
<?php if ($is_checkbox) { ?>
<th scope="col" class="all_chk chk_box">
<input type="checkbox" id="chkall" onclick="if (this.checked) all_checked(true); else all_checked(false);" class="selec_chk">
<label for="chkall">
<span></span>
<b class="sound_only">현재 페이지 게시물 전체선택</b>
</label>
</th>
<?php } ?>
<th scope="col">분야</th>
<th scope="col">경력</th>
<th scope="col">최종학력</th>
<th scope="col">제목</th>
<th scope="col">작업형태</th>
<th scope="col">파견가능지역</th>
</tr>
</thead>
<tbody>
<?php
for ($i=0; $i<count($list); $i++) {
if ($i%2==0) $lt_class = "even";
else $lt_class = "";
// 선택된 분야 코드값과 일치하는 데이터만 출력
if (in_array($list[$i]['category_code'], $selected_categories)) {
// 리스트 출력 코드
}
?>
<tr class="<?php if ($list[$i]['is_notice']) echo "bo_notice"; ?> <?php echo $lt_class ?>" onclick="view_page">
<?php if ($is_checkbox) { ?>
<td class="td_chk chk_box">
<input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>" class="selec_chk">
<label for="chk_wr_id_<?php echo $i ?>">
<span></span>
<b class="sound_only"><?php echo $list[$i]['subject'] ?></b>
</label>
</td>
<?php } ?>
<?php
if ($list[$i]['is_notice']) // 공지사항
echo '<strong class="notice_icon">공지</strong>';
else if ($wr_id == $list[$i]['wr_id'])
echo "<span class=\"bo_current\">열람중</span>";
?>
</td>
<td id="view_page" class="td_wr3">
<?php
if ($is_category && $list[$i]['ca_name']) {
?>
<a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
<?php } ?>
</td>
<td class="td_wr1"><?php echo $list[$i]['wr_1'] ?></td>
<td class="td_wr6"><?php echo $list[$i]['wr_6'] ?></td>
<td class="td_subject" style="padding-left:<?php echo $list[$i]['reply'] ? (strlen($list[$i]['wr_reply'])*10) : '0'; ?>px">
<div class="bo_tit">
<a href="<?php echo $list[$i]['href'] ?>">
<?php echo $list[$i]['icon_reply'] ?>
<?php
if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);
?>
<?php echo $list[$i]['subject'] ?>
</a>
<?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt"><?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?>
</div>
</td>
<td class="td_wr4"><?php echo $list[$i]['wr_4'] ?></td>
<td class="td_wr5"><?php echo $list[$i]['wr_5'] ?></td>
</tr>
<?php } ?>
<?php if (count($list) == 0) { echo '<tr><td colspan="'.$colspan.'" class="empty_table">게시물이 없습니다.</td></tr>'; } ?>
</tbody>
</table>
</div>
<!-- 페이지 -->
<?php echo $write_pages; ?>
<!-- 페이지 -->
<?php if ($list_href || $is_checkbox || $write_href) { ?>
<div class="bo_fx">
<?php if ($list_href || $write_href) { ?>
<ul class="btn_bo_user">
<?php if ($admin_href) { ?><li><a href="<?php echo $admin_href ?>" class="btn_admin btn" title="관리자"><i class="fa fa-cog fa-spin fa-fw"></i><span class="sound_only">관리자</span></a></li><?php } ?>
<?php if ($rss_href) { ?><li><a href="<?php echo $rss_href ?>" class="btn_b01 btn" title="RSS"><i class="fa fa-rss" aria-hidden="true"></i><span class="sound_only">RSS</span></a></li><?php } ?>
<?php if ($write_href) { ?><li><a href="<?php echo $write_href ?>" class="btn_b01 btn write_btn dis_none" title="글쓰기">글쓰기</a></li><?php } ?>
</ul>
<?php } ?>
</div>
<?php } ?>
</form>
</div>
<?php if($is_checkbox) { ?>
<noscript>
<p>자바스크립트를 사용하지 않는 경우<br>별도의 확인 절차 없이 바로 선택삭제 처리하므로 주의하시기 바랍니다.</p>
</noscript>
<?php } ?>
<?php if ($is_checkbox) { ?>
<script>
function all_checked(sw) {
var f = document.fboardlist;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}
function fboardlist_submit(f) {
var chk_count = 0;
for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}
if (!chk_count) {
alert(document.pressed + "할 게시물을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택복사") {
select_copy("copy");
return;
}
if(document.pressed == "선택이동") {
select_copy("move");
return;
}
if(document.pressed == "선택삭제") {
if (!confirm("선택한 게시물을 정말 삭제하시겠습니까?\n\n한번 삭제한 자료는 복구할 수 없습니다\n\n답변글이 있는 게시글을 선택하신 경우\n답변글도 선택하셔야 게시글이 삭제됩니다."))
return false;
f.removeAttribute("target");
f.action = g5_bbs_url+"/board_list_update.php";
}
return true;
}
// 선택한 게시물 복사 및 이동
function select_copy(sw) {
var f = document.fboardlist;
if (sw == "copy")
str = "복사";
else
str = "이동";
var sub_win = window.open("", "move", "left=50, top=50, width=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = g5_bbs_url+"/move.php";
f.submit();
}
// 게시판 리스트 관리자 옵션
jQuery(function($){
$(".btn_more_opt.is_list_btn").on("click", function(e) {
e.stopPropagation();
$(".more_opt.is_list_btn").toggle();
});
$(document).on("click", function (e) {
if(!$(e.target).closest('.is_list_btn').length) {
$(".more_opt.is_list_btn").hide();
}
});
});
if( in_array("1", $arr) ) {
// exist
}else{
// no exist
}
</script>
<?php } ?>
https://finenuts03.mycafe24.com/bbs/board.php?check1%5B%5D=%ED%8C%8C%EA%B2%AC&check1%5B%5D=%EC%A0%95%EA%B7%9C%EC%A7%81&wr_1=&wr_1=&check2%5B%5D=%EC%84%9C%EC%9A%B8&check2%5B%5D=%EA%B2%BD%EA%B8%B0&check2%5B%5D=%EC%9D%B8%EC%B2%9C&check2%5B%5D=%EB%B6%80%EC%82%B0&bo_table=bbs1&sca=&sop=or&chk_wr_id=&sfl=wr_subject&stx=
체크박스 체크표시하고서 검색하면 링크는 이렇게 나옵니다...
chat gpt를 이용하여 get_wr_4.php도 만들어보고 search_list.php도 만들어 봤지만.. 제가 못하는 건지 적용을 못해서..
혹시라도 답을 알려주시면 감사드리겠습니다..
답변 1
음........
$check1 = explode(",", $write['wr_4'])
이건 왜 선언하셨는지는 잘 모르겠는데
$write가 없는 변수일거에요 $write는 write에서만 사용가능합니다.
리스트에서 사용하는 변수는 보통
for ($i=0; $i<count($list); $i++)
안에서 사용하므로 for문 전에 검색 form 영역전에 해당 칼럼 추출 쿼리문을 작성하셔야 해당 값이 들어 갈겁니다~
그리고 검색 후 처리가 안되어있습니다.
그누보드 게시판 검색 코어를 수정하셔도 되고
리스트를 게시판 쿼리를 사용하지 않고 새로 쿼리를 짜서 사용하는 방법도 있고
검색 값이 있다면 ajax로 처리하는 방법도 있습니다.
예를들면
if($_GET['check1']) {
$sql_common = " and wr_4 = '1234' ";
}
이런식으로 쿼리문이 유동적으로 변경되어야 검색값대로 리스트가 변경됩니다.
!-->!-->!-->