통합검색을 셀렉트로 만들었을때 셀렉트 값을 stx로 보내는 방법이 있을까요?
본문
input=text 를 stx로 하는게 아니라
셀렉트를 여러개 만들어서 stx값으로 전송시키는 방법이 있을까요?
select name="stx"
로 하면 하나의 셀렉트는 검색이 되는데
두개 이상은 안되더라구요..
$stx2 $stx3을 만드는것도 실패하고 ㅠ,ㅠ
검색폼이 생각보다 엄청나게 어렵네요..
답변 2
$sfl 에 'wr_subject',
$stx 에 '사과' 라면..
=> 제목에 '사과'가 포함된 게시글이 검색됩니다.
$sfl 에 'wr_subject',
$stx 에 '사과 참외 귤' 이라면.. (구분자는 공백(' '))
=>
$sop 가 'and'라면 제목에 '사과', '참외', '귤'이 모두 포함된 게시글이
$sop 가 'or'라면 제목에 '사과' 또는 '참외' 또는 '귤' 이 포함된 게시글이
검색됩니다. ($sop 의 기본값은 'and' 입니다.)
※ /lib/common.lib.php 의 get_sql_search() 참조
$stx 로 전송하고자 하는 셀렉트박스가 여러개이고, 'or' 검색을 하고 싶다면..
$sop 는 'or' 로 저장
$stx 는 ' ' (공백)으로 합하여 저장한 후 넘겨주면 됩니다.
ex.
sop 와 stx 를 히든 필드로 처리
셀렉트 박스의 name 을 stx1, stx2, stx3 로 한다면..
function tsearch_submit(f) {
...
$('input[name=sop]').val('or');
var str = $('select[name=stx1]').val() + ' ' + ('select[name=stx2]').val() + ' ' + ('select[name=stx3]').val();
$('input[name=stx]').val(str);
...
}
stx를 특정 구분자로 문자열 형식으로 만든후 검색 폼 전송하고
ex) value1|value2|value3
stx를 배열로 잘라서
$stxArr = explode($_POST['stx']);
검색쪽에서 AND [검색할필드명] IN('".implode("','", $stxArr )."')
이렇게 하면 되지않을까요?