Боковая панель фильтрации
Код: Выделить всё
[url=#widget-4]
Brands
[/url]
@foreach (var brand in ViewBag.brandlist as List
)
{
@brand.name
}
Это мой AJAX-код:
Код: Выделить всё
const formatCurrency = (value) => new Intl.NumberFormat('tr-TR', {
minimumFractionDigits: 2,
maximumFractionDigits: 2
}).format(value) + ' TL';
const loadProducts = () => {
// Gather filter values
const category = $('#category-filter').val();
// Collect all checked brand checkboxes
const brands = $('brand-filter input.custom-control-input:checked').map((_, el) => $(el).val()).get();
const sortby = $('#sortby-filter').val();
// Send AJAX request
$.ajax({
url: '/urun/Filter', // Update this with the actual filtering endpoint
method: 'GET',
data: { category, brands: brands.join(','), sortby }, // Send brands as a comma-separated string
success: (data) => {
const productContainer = $('#product-list').empty();
if (data.length) {
data.forEach((product) => {
const addToCartUrl = `@Url.Action("AddToCart", "Home")?productId=${product.id}`;
const loginUrl = '/Login/Index';
productContainer.append(`
[url=/urun/${product.slug}]
[img]${product.image}[/img]
[/url]
${product.a == 0 ? `
[url=${loginUrl}]Sepete Ekle[/url]
` : `
[url=${addToCartUrl}]Sepete Ekle[/url]
`}
[url=/urun/${product.slug}]
${product.brandname}[/url]
${product.name}
${product.indirimvarmı ? `
${formatCurrency(product.indirimliFiyat)}
Eski Fiyat: ${formatCurrency(product.price)}
` : `
${formatCurrency(product.price)}
`}
${product.user == 1 ? `
[url=${loginUrl}]Sepete Ekle[/url]
` : `
[url=${addToCartUrl}]Sepete Ekle[/url]
`}
`);
});
} else {
productContainer.append('
No products found.
');
}
},
error: () => alert('Ürünler yüklenirken bir hata oluştu.')
});
}
// Event bindings
$('#category-filter, #sortby-filter').on('change', loadProducts);
$(document).on('change', '.brand-checkbox', loadProducts);
// Initial load
$(document).ready(loadProducts);
Код: Выделить всё
[url=#widget-1]
Category
[/url]
@foreach (var category in ViewBag.categories as List)
{
@category.categoryname
}
Код: Выделить всё
SortbyФильтр
Я могу запрограммировать выбор 1 элемента фильтра и работает отлично, но я хочу фильтровать по нескольким категориям и брендам.
Подробнее здесь: https://stackoverflow.com/questions/792 ... -with-ajax