CI 묻고 답하기

제목 검색시 xx,xxx 이렇게 콤마를 이용해서 다중검색 시 오류 문제
카테고리 CI 2, 3
글쓴이 정수리 작성시각 2017/07/11 09:07:43
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 13021   RSS

현재 cs버전인 프로그램을

 

웹 버전으로 만들고 있습니다.

 

cs버전에서 검색을 할경우

검색할 단어가 여러개 일경우

 

xxx,xxxx,xx 

이렇게 콤마를 이용해서 검색을 하고 있습니다.

 

웹버전에서도 cs버전처럼 콤마를 이용해서 검색되도록 하고 싶은데

 

,를 넣어서 검색을 했을 경우 

 

The URI you submitted has disallowed characters.

 

이 오류가 발생해버리네요

 

콤마가 허용되지 않는 문자라 저런 오류가 발생하는 것 같은데

 

어떠한 방식으로 처리해야 ,를 이용해서 다중검색이 가능하도록 할수 있을까요

 

선배님들의 조언이나 노하우 부탁드립니다.

 다음글 특정 컨트롤러만 404 error가 발생합니다. (2)
 이전글 페이지네이션 쿼리스트링 질문입니다. (5)

댓글

if(money>0)happy / 2017/07/11 09:40:05 / 추천 0
xxx.','.xxx

xxx.','.xxx 요런 형태는요? 어차피 문자열로 인식하게 하면 되는거아닌가요?

 

정수리 / 2017/07/11 10:06:56 / 추천 0

@if(money>0)happy

구현한 코드를 다시 확인해보니

jquery로 검색 단어를 받아서 url로 값을보내다 보니 

단어에 ,가 있을 경우 url에서는 사용할수가 없어서 저런 오류가 발생하는것 같네요 ㅜㅜ

function search_btn()
{
	if($('input[name="silkeyword"]').val() == ''){
		alert('검색어를 입력해주세요');
		return false;
	} else {
		
		var gongsapk = $('input[name="gongsapk"]').val();
		var act = urlinfo()+'sn/sn_c/sil_list/'+gongsapk+'/silkeyword/'+$('input[name="silkeyword"]').val()+'/p/1';
		$('#search_form').attr('action', act).submit();
	}
}

 

if(money>0)happy / 2017/07/11 10:19:49 / 추천 0

//정수리

음.. 제가 많은 도움이 되드리지 못해서 죄송하네요 xxx,xxx 부분의 소스를 볼수있다면 더 좋겠지만

 어디까지나 제 생각이지만 어차피 다중검색이 목적이라면 검색조건들을 배열에 넣고 url과 같이 넘겨준다음에

DB입력하기전에 explode() 같은 함수 이용해서 배열안에서 하나씩 꺼내오신다음에 검색조건을 만들면 되지않을까요?

정수리 / 2017/07/11 10:35:19 / 추천 0

@if(money>0)happy

답변감사합니다.ㄹ

말씀하신 xxx, xxx 부분의 소스는 바로 위에 답글에 오린소스가 전부입니다.

$('input[name="silkeyword"]').val() 이게 키워드 값이죠

아직 초보라 구현하는데 어려움이 있긴하네요 ㅜㅜ 

결과값에 따라 또 페이징 처리를 해야되다보니

 

결과값이 페이징의 url에 포함되어야 해서 ㅜㅜ  많이 복잡해져 버리는 느낌이네요

한대승(불의회상) / 2017/07/11 13:03:03 / 추천 0
, 대신 _를 사용해 보세요.
유창화 / 2017/07/11 14:24:40 / 추천 0

담순히 url로 넘기는 것이 문제라면 _ 같은 것으로 치환해서 넘기면 될듯합니다.

function search_btn()
{
    var silkeyword = $('input[name="silkeyword"]').val();
    if(silkeyword == ''){
        alert('검색어를 입력해주세요');
        return false;
    } else {
         
        var gongsapk = $('input[name="gongsapk"]').val();
        silkeyword = silkeyword.replace(/,/g, '_');
        var act = urlinfo()+'sn/sn_c/sil_list/'+gongsapk+'/silkeyword/'+silkeyword+'/p/1';
        $('#search_form').attr('action', act).submit();
    }
}

 

/ 2017/07/11 17:36:00 / 추천 0

url인코딩을 사용해 보시거나 구치 submit이면 저런식으로 넘기실 필요가..

/ 2017/07/11 17:37:08 / 추천 0

만약에 검색에서 xxx,xxx,xxxx,xx 를 받으셨다면

javascript에서 split함수를 이용하시어, 검색어를 분리해서 넘겨 주시는게 좋아 보이네요!