フィルタリスト
9014 ワード
前回ホームページに入るとラベルでフィルタリングされていましたすでにできていますが、どのように働いているのか見てみましょう.
まずhtmlコードを見てみましょう.
このセクションはカテゴリを選択するhtmlコードです.
選択によってvalue値が異なります.
まず、get goods()を最初の実行時に実行します.
この関数は後で出ます.
そして、categorySelectが変更されるとget goodsが実行され、先ほどのhtmlカテゴリでvalue値をパラメータとします.
さっき言ったget goods関数です.
パラメータとしてカテゴリを受け入れます.
まずはGoodsListを空けてそれからGETを使って/api/productsを呼び出して、後ろは?tag=選択したカテゴリはurlをこのように作成します.
そこに入って、データを取得し、for文を使用して、データに基づいてカードを作成します.
まずhtmlコードを見てみましょう.
<label for="categorySelect" class="col-4 col-form-label">카테고리</label>
<select class="form-control col-8" id="categorySelect">
<option value="" selected>전체</option>
<option value="drink">음료</option>
<option value="food">음식</option>
</select>
index.ejsコードを見てみると、こんな部分があります.このセクションはカテゴリを選択するhtmlコードです.
選択によってvalue値が異なります.
$(document).ready(function () {
get_goods()
$("#categorySelect").on("change", function () {
get_goods($(this).val())
})
})
このコードはindexです.ejsにscriptに含まれるコード.まず、get goods()を最初の実行時に実行します.
この関数は後で出ます.
そして、categorySelectが変更されるとget goodsが実行され、先ほどのhtmlカテゴリでvalue値をパラメータとします.
function get_goods(category) {
$("#goodsList").empty()
console.log(category)
$.ajax({
type: "GET",
url: `/api/products${category ? "?tag=" + category : ""}`,
data: {},
success: function (response) {
let products = response["products"]
for (let i = 0; i < products.length; i++) {
make_card(products[i])
}
}
})
}
この部分はindexですejsにscriptに含まれるコード.さっき言ったget goods関数です.
パラメータとしてカテゴリを受け入れます.
まずはGoodsListを空けてそれからGETを使って/api/productsを呼び出して、後ろは?tag=選択したカテゴリはurlをこのように作成します.
そこに入って、データを取得し、for文を使用して、データに基づいてカードを作成します.
Reference
この問題について(フィルタリスト), 我々は、より多くの情報をここで見つけました https://velog.io/@gusrn8959/목록-필터링テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol