Задача - вывести компонент "умный фильтр" после полной загрузки страницы. Вызов компонента прописываю в файле, например ajax.php. При полной загрузке страницы (catalog.php) происходит ajax запрос к ajax.php, в котором вызываю компонент следующим образом:
$section_id = $_POST['section_id'];
$smart_filter_path = $_POST['smart_filter_path'];
ob_start();
$APPLICATION->IncludeComponent(
"bitrix:catalog.smart.filter",
"bizon_visual_vertical",
array(
"COMPONENT_TEMPLATE" => "bizon_visual_vertical",
"IBLOCK_TYPE" => "katalog1c",
"IBLOCK_ID" => "23",
"SECTION_ID" => $section_id,
"SECTION_CODE" => "",
"FILTER_NAME" => "arrFilter",
"HIDE_NOT_AVAILABLE" => "N",
"TEMPLATE_THEME" => "grey",
"FILTER_VIEW_MODE" => "horizontal",
"DISPLAY_ELEMENT_COUNT" => "Y",
"SEF_MODE" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "N",
"SAVE_IN_SESSION" => "N",
"INSTANT_RELOAD" => "Y",
"PAGER_PARAMS_NAME" => "arrPager",
"PRICE_CODE" => array(
),
"CONVERT_CURRENCY" => "Y",
"XML_EXPORT" => "N",
"SECTION_TITLE" => "-",
"SECTION_DESCRIPTION" => "-",
"POPUP_POSITION" => "left",
"SEF_RULE" => "/#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/",
"SECTION_CODE_PATH" => "",
"SMART_FILTER_PATH" => $smart_filter_path,
"CURRENCY_ID" => "RUB",
"SEF_URI" => "/?SECTION_ID=".$section_id,
),
false
);
$result = ob_get_contents();
$APPLICATION->RestartBuffer();
echo json_encode($result);
В ответ запроса возвращается верстка данного компонента, я её записываю в div. Все работает. Но вот уже взаимодействие с ним не корректно срабатывает, не отрабатывает component.php этого компонента. Понимаю, что не правильно реализовываю ajax вызов компонента, но решить данную проблему не могу. Можете примерно подсказать, как можно сделать это - отобразить компонент (умный фильтр) после полной загрузки страницы, чтобы с ним можно было как обычно взаимодействовать.
$section_id = $_POST['section_id'];
$smart_filter_path = $_POST['smart_filter_path'];
ob_start();
$APPLICATION->IncludeComponent(
"bitrix:catalog.smart.filter",
"bizon_visual_vertical",
array(
"COMPONENT_TEMPLATE" => "bizon_visual_vertical",
"IBLOCK_TYPE" => "katalog1c",
"IBLOCK_ID" => "23",
"SECTION_ID" => $section_id,
"SECTION_CODE" => "",
"FILTER_NAME" => "arrFilter",
"HIDE_NOT_AVAILABLE" => "N",
"TEMPLATE_THEME" => "grey",
"FILTER_VIEW_MODE" => "horizontal",
"DISPLAY_ELEMENT_COUNT" => "Y",
"SEF_MODE" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "N",
"SAVE_IN_SESSION" => "N",
"INSTANT_RELOAD" => "Y",
"PAGER_PARAMS_NAME" => "arrPager",
"PRICE_CODE" => array(
),
"CONVERT_CURRENCY" => "Y",
"XML_EXPORT" => "N",
"SECTION_TITLE" => "-",
"SECTION_DESCRIPTION" => "-",
"POPUP_POSITION" => "left",
"SEF_RULE" => "/#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/",
"SECTION_CODE_PATH" => "",
"SMART_FILTER_PATH" => $smart_filter_path,
"CURRENCY_ID" => "RUB",
"SEF_URI" => "/?SECTION_ID=".$section_id,
),
false
);
$result = ob_get_contents();
$APPLICATION->RestartBuffer();
echo json_encode($result);
В ответ запроса возвращается верстка данного компонента, я её записываю в div. Все работает. Но вот уже взаимодействие с ним не корректно срабатывает, не отрабатывает component.php этого компонента. Понимаю, что не правильно реализовываю ajax вызов компонента, но решить данную проблему не могу. Можете примерно подсказать, как можно сделать это - отобразить компонент (умный фильтр) после полной загрузки страницы, чтобы с ним можно было как обычно взаимодействовать.