반응형
execSearch
unction execSearch() {
/**
* 검색어 input id: query
* 검색결과 목록: #search-result-box
* 검색결과 HTML 만드는 함수: addHTML
*/
// 0. 기존의 정보를 지워준다.
$('#search-result-box').empty();
// 1. 검색창의 입력값을 가져온다.
let query = $('#query').val();
// 2. 검색창 입력값을 검사하고, 입력하지 않았을 경우 focus.
if (query == '') {
alert("검색어를 입력해주세요.");
$('#query').focus();
return;
}
// 3. GET /api/search?query=${query} 요청
$.ajax({
type:'GET',
url:`/api/search?query=${query}`,
success:function(response){
// 4. for 문마다 itemDto를 꺼내서 HTML 만들고 검색결과 목록에 붙이기!
for (let i =0; i<response.length; i++){
let itemDto = response[i];
let tempHTML = addHTML(itemDto);
$('#search-result-box').append(tempHTML);
}
}
})
}
addHTML
function addHTML(itemDto) {
/**
* class="search-itemDto" 인 녀석에서
* image, title, lprice, addProduct 활용하기
* 참고) onclick='addProduct(${JSON.stringify(itemDto)})'
*/
return ` <div class="search-itemDto">
<div class="search-itemDto-left">
<img src="${itemDto.image}" alt="">
</div>
<div class="search-itemDto-center">
<div>${itemDto.title}</div>
<div class="price">
${numberWithCommas(itemDto.lprice)}
<span class="unit">원</span>
</div>
</div>
<div class="search-itemDto-right">
<!-- itemDto의 형태는 json이고, 괄호안에는 문자열을 써야 하기 때문에 Json.stringify를 사용해야한다. -->
<img src="images/icon-save.png" alt="" onclick='addProduct(${JSON.stringify(itemDto)})'>
</div>
</div>`
}
반응형
'스프링 (Spring) > SelectShop Project' 카테고리의 다른 글
Selectshop - 스케쥴러 (0) | 2021.08.03 |
---|---|
Selectshop - 관심 상품 등록 및 보이기 (0) | 2021.08.03 |
SelectShop - HTML 구성 (0) | 2021.08.03 |
SelectShop - 키워드로 상품 검색하기2 (0) | 2021.08.03 |
SelectShop - 키워드로 상품 검색하기 1 (0) | 2021.08.03 |
댓글