Всем привет. Подскажите, пожалуйста, как мне передать выбранное значение из Select2 в другую функцию фильтрации? (Все коды нашла на просторах интернета и пытаюсь объединить).
Здесь из базы получаем список городов
$(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();
});
});