Задать вопрос
@Irinka95

Как передать значение из Select2 в другую функцию?

Всем привет. Подскажите, пожалуйста, как мне передать выбранное значение из 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();
    });
});
  • Вопрос задан
  • 39 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы