가격 슬라이더 예제를 염두에두고 다음을 제안합니다. 다음은 jQuery를 사용하여 이름으로 사용자를 검색하는 방법의 예입니다.
분명히 검색어 입력 양식이 필요합니다.
<form class="search-form">
<input type="text" name="search" placeholder="Search.." id="search-name">
<button class="search-submit">Go!</button>
<!-- toggleable search options here, including your price slider. -->
</form>
원하는대로 표정을 사용자 정의하십시오. 여기서 중요한 것은 검색 상자에 텍스트를 입력하고 '이동'을 클릭하는 것입니다. 이 작업에 jQuery 이벤트를 첨부하려는 경우 이 아닌 제출 양식으로 제출하면 원하지 않는 페이지가 다시로드되므로 양식을 제출하십시오.
$(".search-submit").click(function() {
var url = "/search?name=" + $("#search-name").val();
$.ajax({
method: "GET",
url: url,
success: function (data) {
// Dynamically change your page results with more jquery based on data
},
error: function (err) {
alert("Something went wrong");
}
});
});
다음으로,이 ajax 요청을 받아들이려면 URL과보기가 필요합니다.
urls.py :
from views.py import search
# Search URL
url((r'^search/$', search),
views.py :
import json
from app.models import User
from django.http import HttpRespons
def search(request):
# Grab the data
query = request.GET.get("name", None)
# Make the query using your backend, the following is just an example
users = User.objects.filter(name=name)
# Serialize the objects as necessary
data = []
for user in users:
data.append({
"name" : user.name,
"age" : user.age,
# Other stuff you want from the objects you retrieved.
})
return HttpResponse(json.dumps(data))
이 루프를 닫는다. 사용자가 검색 쿼리를 입력하면 아약스는 리소스에 대한 호출을하고 새로운 결과를 얻으며 페이지의 동적 변경을 그대로 남겨 둘 것입니다.
할 일 :
- 쿼리를 가져 오는 동안 어떤 종류의 "마스크"가로드됩니다. jquery와 CSS - 추가 검색 옵션으로 수행 할 수 있습니다. 아마 당신이 서버에 당신의 요청에 더 많은 쿼리 문자열로 완료. 예 : "/ search? name = Jack & age = 42"
Angular 또는 React와 같은보다 강력한 javascript 프레임 워크를 사용하면 더 명확 할 수도 있지만 jQuery만으로이 작업을 수행 할 수 있습니다. 이처럼 많은 기능을 사이트에서 수행 할 계획입니까, 아니면이 기능 만 추가 할 계획입니까? – Nick
지금은 검색 필터와 양식 제출에만 관심이 있습니다. 나중에 일부 기능을 추가 할 수 있습니다. jQuery/React/Angular를 사용하여 검색 기능을 수행하려면 어떻게해야합니까? – Satchel
답변에 몇 가지 제안 해주십시오. – Nick