2차분류검색기능문의드립니다.
본문
스킨을 받아서 2차분류까지기능을 넣었는데요. 리스트에서 검색할때 2차도 검색되도록 하려고하는데 어렵네요.
list.skin.php 코드입니다.
<?php if ($is_category) { ?>
<form name="fcategory" method="get">
<input type="hidden" name="bo_table" value="<?php echo $bo_table; ?>">
<select name="sca" id="ca_name" <?php echo ($board['bo_use_category_sub'])? ' onchange="caname()"':'';?>>
<option value=''>전체</option>
<?php echo get_category_option($bo_table, $sca); // SELECT OPTION 태그로 넘겨받음 ?>
</select>
<?php
if ($board['bo_use_category_sub']) {
$bo_confign = array();
$bo_confign['category_list'] = $board['bo_category_list'];
$bo_confign['category_sub_list'] = $board['bo_category_sub_list'];
$bo_serialize = base64_encode(serialize($bo_confign));
if (isset($write['ca_sub_name'])) $ca_sub_name = $write['ca_sub_name'];
?>
<select name="ca_sub_name" id="ca_sub_name">
<option value="">서브분류를 선택하세요</option>
<?php echo $category_option ?>
</select>
<script type="text/javascript">
function caname(value1, value2) {
var ca_name = value1 ? value1 : $('#ca_name option:selected').val();
var bo_category_list = '<?php echo $board['bo_category_list'];?>';
var bo_category_sub_list = '<?php echo $board['bo_category_sub_list'];?>';
$.ajax({
type: 'POST',
url: '<?php echo $board_skin_url;?>/ajax.ca_name.php',
data: {
"bo_serialize" : '<?php echo $bo_serialize;?>',
"ca_name" : ca_name,
"value2" : value2
},
dataType: "json",
success: function(data) {
$("#ca_sub_name").html(data.option);
}
});
}
$(function() {
//$('#ca_name option:eq(1)').attr("selected","selected");
$('#ca_name').val('<?php echo $ca_name;?>');
caname('<?php echo $ca_name;?>','<?php echo $ca_sub_name;?>');
});
</script>
<input type="submit" value="확인">
</form>
<?php } ?>
<?php } ?>
이렇게 넣으니 1차만검색이되네요. 아무래도 list 나 다른파일추가수정이 필요할거같은데요..
초보라서 어렵네요..
list.php 에서 추가해야될게 있을까요?
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 분류 사용 여부
$is_category = false;
$category_option = '';
if ($board['bo_use_category']) {
$is_category = true;
$category_href = get_pretty_url($bo_table);
$category_option .= '<li><a href="'.$category_href.'"';
if ($sca=='')
$category_option .= ' id="bo_cate_on"';
$category_option .= '>전체</a></li>';
$categories = explode('|', $board['bo_category_list']); // 구분자가 , 로 되어 있음
for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]);
if ($category=='') continue;
$category_option .= '<li><a href="'.(get_pretty_url($bo_table,'','sca='.urlencode($category))).'"';
$category_msg = '';
if ($category==$sca) { // 현재 선택된 카테고리라면
$category_option .= ' id="bo_cate_on"';
$category_msg = '<span class="sound_only">열린 분류 </span>';
}
$category_option .= '>'.$category_msg.$category.'</a></li>';
}
}
$sop = strtolower($sop);
if ($sop != 'and' && $sop != 'or')
$sop = 'and';
// 분류 선택 또는 검색어가 있다면
$stx = trim($stx);
답변 3
2차 검색어가 어느 컬럼을 검색하는지 설명이 있어야 답변을 하죠
하여튼 ca_sub_name 필드를 추가했고 이것을 검색한다면
$sql_search = get_sql_search($sca, $sfl, $stx, $sop); <== 다음행에 넣으세요
if($ca_sub_name){
$sql_search .= " and ca_sub_name='$ca_sub_name' ";
$qstr .= '&ca_sub_name=' . urlencode($ca_sub_name);
}
ajax에서 post할때 bo_category_sub_list가 누락되어있네여
그리고 url: '<?php echo $board_skin_url;?>/ajax.ca_name.php', 경로에 가셔서
bo_category_sub_list 받아서 조건에 따른 쿼리도 수정해야 할 것 같아요
lib/common.lib.php
get_sql_search() 함수에서
Seitch 문 ca_name 경우에
$ca_sub_name가 있으면
조건을 추가해 주세요