deedee0905 / CreateType

0 stars 0 forks source link

검색 기능 #32

Open deedee0905 opened 1 year ago

deedee0905 commented 1 year ago

검색기능 만들기

deedee0905 commented 1 year ago

form 태그를 이용하여 input에 입력한 값을 가진 페이지로 이동하게끔 코드를 만들었다. 이 기능을 만들때 ajax를 사용해야하는건지 갑자기 헷갈려서 생각보다 많이 어려웠고 form 태그 자체를 자주 쓰지않아서 기능을 쓰기 위해서 다시 한번 이전에 썼던 코드들을 찾아보고 사용하느라 시간을 제법 많이 잡아먹었다.

페이지로 이동하는 부분까지는 완성하였으니 이제 검색된 결과물의 데이터를 출력할 수 있게끔 코드를 추가해야겠다.

deedee0905 commented 1 year ago

검색된 제목 키워드로 데이터를 가져와서 출력하는 부분까지는 완성하였다. 근데 키워드 일부가 포함된게 아니라 입력된 키워드와 제목이 똑같이 일치해야만 검색 결과가 출력되어서 이 부분을 조금 수정하고 싶다.

deedee0905 commented 1 year ago

아까 작성했던 코드는 검색된 키워드가 제목과 동일해야 결과값이 출력되었는데, 내가 원하던대로 검색 키워드의 일부분을 가지고 있다면 결과값이 출력되도록 코드를 수정하였다.

LIKE '%${title}%' 라는 코드를 추가하였더니 원하는 대로 기능이 수행되었다!

코드를 수정하는 김에 가장 최근에 작성된 글이 맨 위로 올라오게끔 ORDER BY id DESC 코드도 추가하였다.

deedee0905 commented 1 year ago

제목으로 키워드를 검색했을때 아무런 값이 입력되지 않으면 작성되어있는 모든 post가 select 되어서 이를 막을 방법을 생각해보았다.

입력한 검색어(=keyword라고 하겠음)가 아예 "" 빈 값일때 return을 시킬 수 있도록 처음에는 j쿼리로 이벤트를 걸어보았는데 alert 기능은 수행되지만 내가 예상했던 return은 처리되지않고 submit이 그대로 수행되었다.

submit 자체를 막을 수 있는 방법이 없을까? 싶어서 검색을 해보았더니 여러가지 코드가 있기는 하였지만 작동이 되지않았다. 기능이 작동되지는 않았지만 e.preventDefaul(); 함수를 사용하는 부분이 있어서 이 함수를 적용해보면 어떨까? 싶어서 코드를 작성해보았는데 keyword 가 ""으로 빈 문자열일때 alert 기능이 수행되면서 submit이 진행되지 않았다!!

deedee0905 commented 1 year ago

캡처3

캡처4

검색 keyword를 입력하지 않았을 때 submit이 수행되지 않고 경고 메세지를 띄우는 부분도 성공하였고 검색된 결과가 없을때 view 페이지가 달라지도록 jsp 코드를 수정하였다.

디버그를 돌려보니 검색한 keyword가 select 되지 않을때는 model 값에 postList=[] 으로 확인되었다. 이게 null을 의미하는 건지 알기가 어려워서 그냥 jsp에 값을 프린트해보았는데 정말로 [] 값으로 출력되었다. 조건문을 사용해서 [] 값일때 view 페이지가 달라지도록 코드를 작성해봤는데 진짜로 기능이 수행되었다.. ㅎㅎㅎ...

deedee0905 commented 1 year ago

캡처1

커미션 포스트를 검색 할 수 있도록 코드를 추가하였다.

검색 api를 이용할 때에 어떻게 해야 기존 기능을 유지하면서 커미션포스트도 검색할 수 있을까 고민을 해보았는데 model 객체를 추가하고 별도로 반복문이 수행되면 가능할 것 같아서 머릿속에서 그려보던 상황을 그대로 옮겨보았다.

다행이 원하는 기능대로 작동을 하는 부분을 확인할 수 있었다!!