@maksplotnikoff

Ajax подгрузка файла, и передача $arResult (Битрикс)?

Делаю поиск на сайте. Есть 2 вида отображения контента, сеткой и списком. В шаблоне search.page создал 2 файла .php, и в зависимости от того, что находится в куках, подключаю один из них. Переключение между этим отображением должно быть на ajax. Как это всё правильно реализовать?
Что делаю я: есть ajax-обработчик, который при клике отправляет меня на файл, в котором я подключаю тот или иной шаблон вывода
$APPLICATION->IncludeFile(".../components/bitrix/search.page/search/".$_POST['TEMPLATE'].".php", array('arResult' => $arResult));

Вот только проблема в том, что никак не могу придумать, как передавать $arResult. Ведь передавать его в ajax - не очень хорошая затея, очень много инфы.
Если обработчик отправлять на template.php, который начинается так:
<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
$templateFolder = $this->GetFolder();
    if (!empty($_POST) && $_POST["ACTION"] == "ChangeSearchView") {

        $APPLICATION->IncludeFile($templateFolder."/".$_POST['TEMPLATE'].".php", array('arResult' => $arResult));
    }
?>

То в консоле выводится ошибка
Fatal error: Using $this when not in object context in .../components/bitrix/search.page/search/template.php on line 3

Как всё таки правильно делать?
  • Вопрос задан
  • 723 просмотра
Пригласить эксперта
Ответы на вопрос 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
1. Вариант: в настройках компонента "AJAX_MODE" => "Y"
2. Вариант: в зависимости от запроса подключаете разный шаблон для компонента. Компонент обрамляете div'ом в который будете грузить результат ajax вызова.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы