Notice
Recent Posts
Recent Comments
Link
Ssul's Blog
게시판 검색기능 구현(검색어 입력 & 버튼값으로) 본문
게시판에서 검색어를 입력하여 일치하는 항목만 출력하는 방법과
카테고리명을 가지고 있는 버튼을 눌러서 해당 카테고리 항목만 출력하는 방법 두개 구현
#1. 게시판에 검색어 입력해서 출력하는 방법
우선 뷰파일 코딩
<form action="/dbs" class="form-inline mt-2 mt-md-0 justify-content-center">
<input type="text" class="form-control mr-sm-2" name="query" value="<%= params[:query] %>" placeholder="명칭검색">
<button type="submit" class="btn btn-primary my-2 my-sm-0">검색</button>
</form>
평소와 같은 폼을 구성하고, 폼 이름을 query로 하고, 해당 폼에 입력되는 값을 value에 저장
컨트롤러가 쿼리가 있을때와 없을때로 구분해서 받는다.
def index
#쿼리가 입력되었으면, 쿼리단어가 들어간 이름들은 전부 찾아 리턴
if params[:query].present?
@dbs = Db.where("name LIKE ?", "%#{params[:query]}%")
else
@dbs = Db.all
end
end
사실 두번째가 한 30분정도 고생한것 같다.
우선 버튼으로 값을 넘기는 방법을 고민해봤는데.... 에러가 계속 발생.
하여, hidden input을 넘기는 것으로 해결
[결과물 먼저 출력] -> 원래 게시판에서 문화예술 버튼만 클릭시 해당게시물만 출력
뷰파일 코딩
<form action="/infos" class="d-inline">
<input type="hidden" name="query" value="<%= info.category %>">
<button type="submit" class="d-inline btn btn-info btn-sm"><%= info.category %></button>
</form>
hidden input을 넣어주고, 기존과 동일한 형태로 코딩
컨트롤러 코딩...
1차 시기에는 에러가 났었음. 카테고리를 enum 변수로 구성되었기 때문에, 숫자로 변환하는 방법이 필요했음.
아래와 같이 할 경우 숫자 값을 리턴
if params[:query].present?
#params[:query]로 검색시 문자열로 검색하기 때문에, 숫자로 전환이 필요함
@preinfos = Info.where(category: Info.categories[params[:query]])
else
@preinfos = Info.all
end
end
앞으로 버튼 검색해서 출력하는 형태는 구현가능!!
'dev > 기능구현' 카테고리의 다른 글
React Native 구글 소셜로그인 구현 (1) | 2023.02.12 |
---|---|
아임포트로 구독결제 구현하기(django, react, restframework) (0) | 2023.02.03 |
django 이번주 월요일 찾기 > 일주일 쿼리셋 구해서 > 직렬화해서 클라이언트 응답 (0) | 2022.10.05 |
[자기관리 어플Proj] 2일차 회원가입 및 자기관리 백앤드 개발 (0) | 2020.09.15 |
[자기관리 어플Proj] 1일차 모델설계 (0) | 2020.09.15 |