··조회 11,425
[re] 검색을 select 폼이 아니라 체크박스형식으로 할려면...
>검색을 select 폼이 아니고
>체크박스형식으로 할려면
>여기 나온 게시판 프로젝트 2 에서 어떻게 변형을 해야될까요?
>
>쿼리문하고 받는 부분을 약간 변경하면 될듯한데요
>
>위의 쏘스에 최대한 변경을 안하고 하려면 값을 넘기는부분
>즉 링크걸리는 부분은 어떻게 바꿔야 되는지 알려주세요~
>
>쿼리 부분에서 or 로 연결해서 붙이면 될듯한데요...
>
><input type ="checkbox" name ="subject" value="subject">
><input type ="checkbox" name ="comment" value="comment">
><input type ="checkbox" name ="name" value="name">
>
>이런식으로 바꾸면 쿼리문에서
>subject like '%src_value%' or comment like '%src_value%' or
>name like '%src_value%'
>
>이렇게 바꾸고 나면 리스트나 링크걸려서 넘어가는 부분은
>src_name=$src_name&src_value=$src_value
>
>이부분을 어떻게 해야되는지 --;;
>
>그럼 즐거운 주말되세요!!
이건 답변하려면 시간이 좀 걸리는데요..
그래도, 주말이니깐...
우선 검색 폼은 다음과 같이 하면 되겠네요.
이름<input type=checkbox name=src_name>
제목<input type=checkbox name=src_subject>
내용<input type=checkbox name=src_memo>
여기까지는 쉽지요...
그런데, 여기서 입력된 값으로 where 문을 구성하도록 만드는 것이 좀 복잡할 수 있습니다.
아래와 같이 하면 될 것 같은데요...
//체크박스를 통한 다중 검색
if ($src_value != '') { // 검색어가 입력되었으면
$i=0;
if ($src_name) { // 이름이 체크되었을 경우
$i++;
$w_str[$i] = "name like '%$src_value%' ";
}
if ($src_subject) { // 제목이 체크되었을 경우
$i++;
$w_str[$i] = "subject like '%$src_value%' ";
}
if ($src_memo) { // 내용이 체크되었을 경우
$i++;
$w_str[$i] = "memo like '%$src_value%' ";
}
for($j=1;$j<=$i;$j++) { // 위의 문장을 모두 연결함
if ($j < 2) {
$where .= $w_str[$j];
} else { // 두가지 이상일 경우 or로 연결함
$where = $where." or ".$w_str[$j];
}
}
if ($i > 0) $where = "where $where"; // 하나라도 체크가 되었을 때만
}
좀 복잡하죠?
그래도 몇번을 뚫어져라 쳐다보면 이해가 되실 겁니다...^^

>체크박스형식으로 할려면
>여기 나온 게시판 프로젝트 2 에서 어떻게 변형을 해야될까요?
>
>쿼리문하고 받는 부분을 약간 변경하면 될듯한데요
>
>위의 쏘스에 최대한 변경을 안하고 하려면 값을 넘기는부분
>즉 링크걸리는 부분은 어떻게 바꿔야 되는지 알려주세요~
>
>쿼리 부분에서 or 로 연결해서 붙이면 될듯한데요...
>
><input type ="checkbox" name ="subject" value="subject">
><input type ="checkbox" name ="comment" value="comment">
><input type ="checkbox" name ="name" value="name">
>
>이런식으로 바꾸면 쿼리문에서
>subject like '%src_value%' or comment like '%src_value%' or
>name like '%src_value%'
>
>이렇게 바꾸고 나면 리스트나 링크걸려서 넘어가는 부분은
>src_name=$src_name&src_value=$src_value
>
>이부분을 어떻게 해야되는지 --;;
>
>그럼 즐거운 주말되세요!!
이건 답변하려면 시간이 좀 걸리는데요..
그래도, 주말이니깐...
우선 검색 폼은 다음과 같이 하면 되겠네요.
이름<input type=checkbox name=src_name>
제목<input type=checkbox name=src_subject>
내용<input type=checkbox name=src_memo>
여기까지는 쉽지요...
그런데, 여기서 입력된 값으로 where 문을 구성하도록 만드는 것이 좀 복잡할 수 있습니다.
아래와 같이 하면 될 것 같은데요...
//체크박스를 통한 다중 검색
if ($src_value != '') { // 검색어가 입력되었으면
$i=0;
if ($src_name) { // 이름이 체크되었을 경우
$i++;
$w_str[$i] = "name like '%$src_value%' ";
}
if ($src_subject) { // 제목이 체크되었을 경우
$i++;
$w_str[$i] = "subject like '%$src_value%' ";
}
if ($src_memo) { // 내용이 체크되었을 경우
$i++;
$w_str[$i] = "memo like '%$src_value%' ";
}
for($j=1;$j<=$i;$j++) { // 위의 문장을 모두 연결함
if ($j < 2) {
$where .= $w_str[$j];
} else { // 두가지 이상일 경우 or로 연결함
$where = $where." or ".$w_str[$j];
}
}
if ($i > 0) $where = "where $where"; // 하나라도 체크가 되었을 때만
}
좀 복잡하죠?
그래도 몇번을 뚫어져라 쳐다보면 이해가 되실 겁니다...^^

댓글 1
저도 곧 주인장님 처럼 저와같은 초보자들을 답달아 줄수있는 그날이 올때까지 열심히 하겠습니다~
그럼 즐거운 하루되세요!!