한 페이지 내에 검색창과 입력창을 동시에 구현하는 방법이 궁금합니다.
266
작성한 질문수 1
아래 그림과 같이 한 화면에 검색창과 입력창을 동시에 구현하는 방법에 관해 조언을 구하고 싶습니다.

위쪽이 input form이고 아래쪽이 검색창입니다.
사용자가 값을 입력하는 중 자료를 검색하여 그 결과를 참고해서 입력할 수 있도록 구현하고자 합니다.
GET 방식으로 검색기능을 구현했을 때, 검색이 되면 그동안 사용자가 입력하던 텍스트가 사라집니다.
사용자가 입력하고 있던 값들도 그대로 유지한 채 사용자가 중간중간 검색을 하면서 값을 입력하고 최종적으로 한 번에 저장할 수 있도록 하는 방법이 있을까요?
답변 기다리겠습니다.
감사합니다.
답변 1
0
안녕하세요.
보여주신 스크린샷에서 의도하신 UI가 명확히 이해를 못한 듯 하지만, 제가 이해한 만큼 설명을 드리자면.
검색을 하고, 검색결과 중에 한 행(Row)을 선택해서, 그 행의 내역을 입력 Form에 포함시켜서 전송하고 싶다. 로 이해했습니다.
검색 기능과 입력 Form의 기능을 따로 나눠서 생각하셔야 합니다. 엄연히 다른 기능이니깐요.
1) 검색 기능에서는 단순히 <form method="get"> 으로만 구현하시면 매 검색 시마다 페이지가 다시 그려집니다. 이는 <form>의 기능 동작입니다. 페이지가 다시 그려지지 않도록 할려면, 검색의 submit 동작을 javascript로 처리해주셔야 합니다. 해당 form 에 submit 이벤트에 대한 이벤트 리스너를 거실 수 있구요. submit 이벤트가 발생하면, Ajax 로 검색요청을 하시고 응답을 받아서, javascript로 검색결과를 화면에 반영합니다.
이 부분은 htmx 라이브러리를 쓰시면, javascript 코드를 최소화해서 구현하실 수 있지만 htmx에 대한 학습이 필요하긴 합니다. 이에 대해서는 영어 유튜버지만 BugBytes 채널을 참고해보시면 좋습니다.
https://www.youtube.com/playlist?list=PL-2EBeDYMIbRByZ8GXhcnQSuv2dog4JxY
2) 입력 Form에서는 검색에서 선택한 행에 대한 값을 전송할 수 있도록 input[type=hidden] 필드를 하나 준비해두고, 검색에서 행을 선택하면 해당 hidden 필드의 .value 속성을 업데이트하는 방식으로 구현해보실 수 있습니다.
살펴보시고, 추가 질문 남겨주세요.
토론하며 더 발전시켜나가보시죠.
화이팅입니다. :-)
안녕하세요.
0
49
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
273
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
382
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
268
1
bootstrap4
0
470
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
364
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
573
3
useState는 필수일까요?
0
263
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
600
4
Django allauth를 사용한 소셜 로그인 시 에러
0
655
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
555
2
useLocalStorage() 함수 사용여부
0
228
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
449
1
리듀서의 의미 재확인
0
430
1
simple-jwt Refresh Token 사용 노하우
0
898
2
docker compose 를 통한 배포 관련 오류 문의
0
670
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
364
1
is_like_user
0
233
1
related_name 오류
0
273
1
re_path 오류
0
258
1
re_path url
0
251
1
No post matches the given query
0
661
2





