Смена вида карточек товаров в catalog.section с иммитацией AJAX

RSS
Смена вида карточек товаров в catalog.section с иммитацией AJAX
 
Смена вида карточек товаров в catalog.section с иммитацией AJAX

Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии. Просто6 записывая в нее нужный вида шаблона или режима отображения.
 
С сесcией можно работать и без API битрикс, просто используя
$_SESSION
Код
session_start();
$_SESSION['LIST_PRODUCT_ROW_VARIANTS'] = $_POST['LIST_PRODUCT_ROW_VARIANTS'];
exit();

Так же, этот способ можно использовать и для сортировки товаров:
По новизне, алфавиту, свойствам и так далее.
Таким же образом записываем в сессию параметры и направление SORT для каталога
Изменено: Михаил Базаров - 09.10.2022 00:02:10
 
Спасибо помогли, вопрос такой, а как бы ещё оставить активной подсвеченой, иконку с текущеим отображением товара?
 
В js
Код
$('.catalog_sort_panel_view button').click(function () {
    var viewVariant = $(this).data('view');

    // Удалить класс "active" у всех кнопок
    $('.catalog_sort_panel_view button').removeClass('active');

    // Добавить класс "active" к выбранной кнопке
    $(this).addClass('active');

    $.post('/local/ajax/view_catalog.php', {
        LIST_PRODUCT_ROW_VARIANTS: viewVariant,
    }, function (data) {
        location.reload();
    });
});

Для кнопок, переносим код получения сессии до них и
Код
<?php
$session = \Bitrix\Main\Application::getInstance()->getSession();

if ($session->has('LIST_PRODUCT_ROW_VARIANTS')) {
    $LIST_PRODUCT_ROW_VARIANTS = $session['LIST_PRODUCT_ROW_VARIANTS'];
}

if (empty($LIST_PRODUCT_ROW_VARIANTS)) {
    $LIST_PRODUCT_ROW_VARIANTS = "[{'VARIANT':'3','BIG_DATA':false}]";
}

// Получите значение выбранной вьюхи
$selectedView = json_decode($LIST_PRODUCT_ROW_VARIANTS, true)[0]['VARIANT'];
?>

<div class="catalog_sort_panel_view">
    <button data-view="grid" <?php echo $selectedView === 'grid' ? 'class="active"' : '' ?>>
        <i class="fa fa-th"></i>
    </button>
    <button data-view="list" <?php echo $selectedView === 'list' ? 'class="active"' : '' ?>>
        <i class="fa fa-list"></i>
    </button>
</div>

Ну и стилизуем выбранные кнопки через их class="active" (будет у выбранного варианта)
Изменено: Михаил Базаров - 21.09.2023 10:30:30
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst
Место для вашей рекламы.
Сквозная по:

15 000 руб/мес.

Обязательно через ОРД
со счетами и актами

Блог-note: заметки разработчика

Вывести все разделы в которых находится элемент инфоблока

Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоблока, например в карточке това...

Базовая защита "Битрикс виртуальная машина" от DDoS атак.

Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, когда ваш сервер на CentOS под...

Fancybox в стандартном шаблоне детальной карточки товара, 1С-Битрикс, вместо всплывающего окна и лупы.

Задача: заменить работу с изображениями в стандартном или кастомном шаблоне детальной карточки (catalog.element)...

Memcached на сайте под управлением битрикс, при использовании Веб Окружения Битрикс

Если вам важна скорость отдачи сайта, а у вашего сервера медленный диск для использования кеша на файлах. Можно кеширова...

Автоматически помечаем новинки лейблом в каталоге битрикс

Если вы хотите помечать новинки каталога, вашего магазина на Битрикс, лейблом "Новинка". И так, что бы это происходило а...

Композитный сайт на 1С-Битрикс

Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Композитный сайт" - данная услуга уже...

Если товар в корзине, поменять значение input на "В корзине"

Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBaske...

Пункты меню из разделов инфоблока Битрикс

В принципе это стандартная возможность системы управления битрикс, но почему-то часто спрашивают как это сделать. Возмож...

Менять большую картинку, при клике на маленькую, в детальной карточке

Мини скриптик, может кому пригодится для каталога товаров или новостей при использовании дополнительных картинок (обычно...