У меня есть четыре флажка, и я извлекаю некоторые данные JSON из API с помощью jQuery AJAX, и я хочу динамически изменять URL-адрес при выборе флажка. Когда я помещаю ajax-код внутри функции щелчка, он работает, но из-за внешней функции щелчка он не работает. На самом деле я не могу получить доступ к массиву категорий вне функции щелчка.Изменить AJAX jQuery url from checkbox selection
Я хочу сохранить значение категории в глобальную переменную или массив, поэтому я могу получить к нему доступ в коде Ajax или где-то еще в моем коде, и я не могу понять, как это сделать.
var category = [];
$(".ckbox").click(function() {
if ($(this).is(":checked")) {
category.push($(this).val());
} else {
var x = category.indexOf($(this).val());
category.splice(x, 1);
}
console.log(category); //show array on checkbox clicking
});
console.log(category); //show empty array
$.ajax({
url: 'https://godrejapi-dot-indiacomapi.appspot.com/_ah/api/godrej/v1/godrejestablishment?',
dataType: 'json',
type: 'GET',
data: {
category: category,
city: 'PUNE',
begin: '0',
limit: '200',
},
traditional: true,
success: function(response) {
console.log(response);
},
error: function(err) {
alert("something went wrong.");
console.log(err);
}
});
Что вы подразумеваете под контролем 'ajax' наружной функции' click'? Должна быть какая-то исходная точка для правильного запуска 'ajax'? Либо в любом случае или в функции, либо он будет выполняться в 'DOM ready'. Можете ли вы объяснить на примере? –
Если вы не запускаете его в обработчике событий, он запускается только один раз, когда страница загружается. Как он может использовать флажки, которые пользователь выбрал, если он работает до того, как пользователь имеет возможность выбрать что-то? – Barmar