$(document).ready(function(){
$(".city").select2({
ajax: {
url: "/ajax.php?action=main&type=get_city",
type: "post",
dataType: 'json',
delay: 250,
data: function (params) {
return {
searchTerm: params.term
};
},
processResults: function (response) {
return {
results: response
};
},
cache: true
}
});
});
$(document).ready(function () {
getFilter();
function getFilter() {
let action = 'get_data';
let category = filterCategory('category');
let city = filterCity(); // первый вариант
let city = filterCity(city); // второй вариант
$.ajax({
url: '/ajax.php?action=main&type=get_data',
method: 'POST',
data: { action: action, category: category, city: city },
success: function (response) {
$('#filterResults').html(response);
}
});
}
function filterCategory(classname) {
let filter = [];
$('.' + classname + ':checked').each(function () {
filter.push($(this).val());
});
return filter;
}
// Пробую извлечь значение выбранного селекта и передать в функцию (первый варинт)
$('.city').on('select2:select', function(e) {
filterCity(this.value);
});
function filterCity(city){
var a = city;
console.log(a);
}
// конец
//второй вариант
function filterCity(classname) {
$('.' + classname).on("select2:select", function () {
filter = (this.value);
console.log(filter);
});
return filter;
}
//конец
$('.filter_click').click(function () {
getFilter();
});
});
$(document).ready(function() {
// инициализация Select2
$(".city").select2({
ajax: {
url: "/ajax.php?action=main&type=get_city",
type: "post",
dataType: 'json',
delay: 250,
data: function(params) {
return {
searchTerm: params.term
};
},
processResults: function(response) {
return {
results: response
};
},
cache: true
}
});
// глобальная переменная для хранения выбранного города
let selectedCity = null;
// обработчик выбора города
$('.city').on('select2:select', function(e) {
selectedCity = e.params.data.id; // или e.params.data.text в зависимости от того, что нужно
console.log("Выбран город:", selectedCity);
});
// основная функция фильтрации
function getFilter() {
let action = 'get_data';
let category = filterCategory('category');
let city = selectedCity; // используем сохраненное значение города
$.ajax({
url: '/ajax.php?action=main&type=get_data',
method: 'POST',
data: {
action: action,
category: category,
city: city
},
success: function(response) {
$('#filterResults').html(response);
}
});
}
function filterCategory(classname) {
let filter = [];
$('.' + classname + ':checked').each(function() {
filter.push($(this).val());
});
return filter;
}
$('.filter_click').click(function() {
getFilter();
});
});