답변 2개
채택된 답변
+20 포인트
2년 전
자바스크립트쪽도 작업을 해줘야하겠지만. php쪽도 봐주셔야하지 않을까 해서 안내드려봅니다.
/bbs/search.php 69라인쪽을 보시면
</p>
<p> $search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;</p>
<p> // 검색필드를 구분자로 나눈다. 여기서는 +
$field = explode('||', trim($sfl));</p>
<p> $str = '(';
for ($i=0; $i<count($s); $i++) {
if (trim($s[$i]) == '') continue;</p>
<p> $search_str = $s[$i];</p>
<p> // 인기검색어
insert_popular($field, $search_str);</p>
<p> $str .= $op1;
$str .= "(";</p>
<p> $op2 = '';
// 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
for ($k=0; $k<count($field); $k++) {
$str .= $op2;
switch ($field[$k]) {
case 'mb_id' :
case 'wr_name' :
$str .= "$field[$k] = '$s[$i]'";
break;
case 'wr_subject' :
case 'wr_content' :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
else
$str .= "INSTR({$field[$k]}, '{$search_str}')";
break;
default :
$str .= "1=0"; // 항상 거짓
break;
}
$op2 = " or ";
}
$str .= ")";</p>
<p> $op1 = " {$sop} ";
}
$str .= ")";</p>
<p>
요렇게 되어있을겁니다. $field 값이 조건이니 이부분에 맞게 case별로 추가해서 변경해보시면 더 효율적인 검색이 될듯생각됩니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
2년 전
</p>
<p>var cnt = 0;
for (var i=0; i<f.stx.value.length; i++) {
if (f.stx.value.charAt(i) == ' ')
cnt++;
}</p>
<p>if (cnt > 1) {
alert("빠른 검색을 위하여 검색어에 공백은 한개만 입력할 수 있습니다.");
f.stx.select();
f.stx.focus();
return false;
}</p>
<p>
위의 자바스크립트에서 if (cnt > 1) { 이 부분을 변경하면 됩니다.
1보다 큰수를 넣으면 될 것입니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인