@inviziblll

Как вернуть результат работы компонента в переменную?

На стороне файла ajax.php отрабатывает компонент sale.basket.basket.linetmp (корзина)
затем результат работы ajax-файл возвращает в виде html и этот html на стороне фронтенадя добавляется в блок верстки.

код файла ajax.php
define('STOP_STATISTICS', true);
define('NOT_CHECK_PERMISSIONS', true); 

if (!isset($_POST['siteId']) || !is_string($_POST['siteId']))
	die();

if (!isset($_POST['templateName']) || !is_string($_POST['templateName']))
	die();

if ($_SERVER['REQUEST_METHOD'] != 'POST' ||
	preg_match('/^[A-Za-z0-9_]{2}$/', $_POST['siteId']) !== 1 ||
	preg_match('/^[.A-Za-z0-9_-]+$/', $_POST['templateName']) !== 1)
	die;

define('SITE_ID', $_POST['siteId']);
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
if (!check_bitrix_sessid())
	die;

$_POST['arParams']['AJAX'] = 'Y';

$APPLICATION->RestartBuffer();
header('Content-Type: text/html; charset='.LANG_CHARSET);
$APPLICATION->IncludeComponent('bitrix:sale.basket.basket.linetmp', $_POST['templateName'], $_POST['arParams']);

Необходимо чтобы ajax файл возвращал json так как помимо верстки требуется возвращать еще несколько параметров корзины и проще это делать в одном запросе, нужно чтобы результат работы компонента sale.basket.basket.linetmp был сохранен в переменную. Подскажите как это можно сделать?
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 1
Technique102
@Technique102
Если быстро, то скопируйте компонент в свое пространство имен. И в файле class.php или component.php сделайте вывод $arResult.
Или можно шаблон оставить пустым, а $arResult в component_epolog.php вывести как вариант.

Но я бы так не делал. Лучше написать обработчик без использования компонента.
Ответ написан
Ваш ответ на вопрос

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

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