filter.length ? filter : null;
, т.к. в серверной части у меня сразу принимается массив (у статьи может быть несколько категорий и ищу я их через LIKE, если это правильно конечно..)if (isset($_POST['category'])) {
$filters = [];
$category = implode("%' OR `a`.`p_categories` LIKE '%", $_POST['category']);
$filters[] = "(`a`.`p_categories` LIKE '%{$category}%')";
if (!empty($filters)) {
$sql .= " AND " . implode(" AND ", $filters);
}
}
$(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 в зависимости от того, что нужно
getFilter();
//console.log("Выбран город:", selectedCity);
});
getFilter();
// основная функция фильтрации
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();
});
});
function getNotification() {
if (!Notification) {
$('body').append('<h4 style="color:red">*Browser does not support Web Notification</h4>');
return;
}
if (Notification.permission !== "granted") {
Notification.requestPermission();
} else {
$.ajax({
url : "/ajax.php?action=app&type=push_notification",
type: "POST",
success: function(response, textStatus, jqXHR) {
var response = jQuery.parseJSON(response);
if(response.result == true) {
var notificationDetails = response.notif;
<b> var notificationId = response.id;</b>
for (var i = notificationDetails.length - 1; i >= 0; i--) {
var notificationUrl = notificationDetails[i]['url'];
var notificationObj = new Notification(notificationDetails[i]['title'], {
icon: notificationDetails[i]['icon'],
body: notificationDetails[i]['message'],
});
notificationObj.onclick = function () {
<b>$.post('/ajax.php?action=push&type=push_click', {'id': notificationId}, function(result){
Toast[result['status']](result['text']);
}, 'json');</b>
window.open(notificationUrl);
notificationObj.close();
};
setTimeout(function(){
notificationObj.close();
}, 7000);
};
} else {
}
},
error: function(jqXHR, textStatus, errorThrown) {}
});
}
};