Добрый день! Прошу помощи. Есть комплексный компонент новостей, в списке элементов есть фильтр по разделам и по свойству типа "список" - [URL=http://take.ms/HGIOS]http://take.ms/HGIOS[/URL].
Так называемый фильтр работает на аяксе.
news.php[CODE]<?if($_POST['AJAX']=='Y') $APPLICATION->RestartBuffer();?>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"project_list",
Array(
...
"AJAX" => $_REQUEST["AJAX"],
),
$component
);?>
<?if($_POST['AJAX']=='Y') die();?>
[/CODE]
Скрипт:[CODE]function ajaxGetProjects(section, types) {
$.ajax({
url: '/include/ajax/projects.php',
type: 'POST',
data: {
section_id: section,
type_id: types
},
success: function (data) {
$('#list_project').html(data);
}
});
}
[/CODE]Содержимое файла projects.php (prolog и epilog подключены)[CODE]<?
$section_id = $_POST['section_id'] ? intval($_POST['section_id']) : array();
$type_id = is_array($_POST['type_id']) ? $_POST['type_id'] : array();
global $arrFilter;
$arrFilter = array(
"SECTION_ID" => $section_id,
"PROPERTY_TYPE" => $type_id,
);
?>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"project_list",
Array(
...
"FILTER_NAME" => "arrFilter",
...
)
);?>
[/CODE]Фильтр работает. При клике по ссылкам идет обращение к файлу projects.php, фильтруется, ну и возвращается нужное.
Но нужно еще сделать ajax-пагинацию, чтобы при клике на "Загрузить еще" подгружалась порция элементов.
Решение взято из [URL=https://mattweb.ru/item/98-zagruzka-novostej-s-pomoschu-ajax-na-sajte-pod-upravleniem-1s-bitriks]этой[/URL] статьи. Подгрузка работает пока не пользуешься фильтром. Отфильтровал элементы, нажал "загрузить еще", и вместо того чтобы подгружать отфильтрованные элементы, он просто подгружает все игнорируя фильтр.
Ссылка на [URL=http://dev.adline.indep.pro/projects/]сайт[/URL]. Всего 4 элемента. На страницу выводится по 2. Для примера: нажать "Свет и технологии", в этом разделе 3 элемента, но при попытке загрузить еще, грузит не 1 а 2.
Подскажите пожалуйста в чем проблема и куда копать. Спасибо!
Так называемый фильтр работает на аяксе.
news.php[CODE]<?if($_POST['AJAX']=='Y') $APPLICATION->RestartBuffer();?>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"project_list",
Array(
...
"AJAX" => $_REQUEST["AJAX"],
),
$component
);?>
<?if($_POST['AJAX']=='Y') die();?>
[/CODE]
Скрипт:[CODE]function ajaxGetProjects(section, types) {
$.ajax({
url: '/include/ajax/projects.php',
type: 'POST',
data: {
section_id: section,
type_id: types
},
success: function (data) {
$('#list_project').html(data);
}
});
}
[/CODE]Содержимое файла projects.php (prolog и epilog подключены)[CODE]<?
$section_id = $_POST['section_id'] ? intval($_POST['section_id']) : array();
$type_id = is_array($_POST['type_id']) ? $_POST['type_id'] : array();
global $arrFilter;
$arrFilter = array(
"SECTION_ID" => $section_id,
"PROPERTY_TYPE" => $type_id,
);
?>
<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"project_list",
Array(
...
"FILTER_NAME" => "arrFilter",
...
)
);?>
[/CODE]Фильтр работает. При клике по ссылкам идет обращение к файлу projects.php, фильтруется, ну и возвращается нужное.
Но нужно еще сделать ajax-пагинацию, чтобы при клике на "Загрузить еще" подгружалась порция элементов.
Решение взято из [URL=https://mattweb.ru/item/98-zagruzka-novostej-s-pomoschu-ajax-na-sajte-pod-upravleniem-1s-bitriks]этой[/URL] статьи. Подгрузка работает пока не пользуешься фильтром. Отфильтровал элементы, нажал "загрузить еще", и вместо того чтобы подгружать отфильтрованные элементы, он просто подгружает все игнорируя фильтр.
Ссылка на [URL=http://dev.adline.indep.pro/projects/]сайт[/URL]. Всего 4 элемента. На страницу выводится по 2. Для примера: нажать "Свет и технологии", в этом разделе 3 элемента, но при попытке загрузить еще, грузит не 1 а 2.
Подскажите пожалуйста в чем проблема и куда копать. Спасибо!