Способ как мне кажется очень кривой но других вариантов просто решить задачу не отходя от bitrix ajax уровня компонентов я не нашел. Поэтому буду очень рад узнать другие способы.
Есть два компонента на странице сайта - 1й - catalog.compare.result (находится на самой физической странице в контентной части), 2й - catalog.compare.list (находится в шаблоне сайта, в футере). У обоих компонентов 'AJAX_MODE' = 'Y'.
Проблема - когда на в контентной области сайта пользователь удаляет товары из таблицы сравнения то вывод компонента catalog.compare.list в футере сайта не обновляется.
Мое решение - в шаблоне catalog.compare.list вставляем
<a id="compare-refresh" style="display:none;" rel="nofollow" href="<?=$APPLICATION->GetCurPage()?>">Обновить</a>
|
А в шаблон catalog.compare.result -
<?php if(isset($_REQUEST['AJAX_CALL']) && 'Y' == $_REQUEST['AJAX_CALL']): ?>
<script type="text/javascript">
$('#compare-refresh').click();
</script>
<?php endif; ?> |
Но тут остается еще один косяк - проблема в том что компонент catalog.compare.result не подключает шаблон когда список сравниваемых элементов пуст, а значит когда остался 1 элемент и мы его удаляем то код
<script type="text/javascript">
$('#compare-refresh').click();
</script> |
не выполнится.
А значит нужно искать еще какой-то костыль либо кастомизировать компонент и подключать шаблон в любом случае даже если список пуст