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

Если Вам нужно поменять текст на кнопке, добавляющей товар в корзину, достаточно воспользоваться методом API "CSaleBasket::GetList - который возвращает результат выборки записей из корзины" и немножко js-а
 
В если добавление товара происходит не по input а по ссылке href как быть ?  
 
В целом тоже самое.

Предположим есть ссылка:
Код
<a href="<?echo $arResult["ADD_URL"];?>" class="to_basket">В корзину</a>


Добавляем скрипт, который изменит содержимое ссылки по клику
Код
<script>
$(document).ready(function () {
    $('.to_basket').click(function () {
        $(this).addClass('in_basket'); //Добавляем class in_basket если хотим стилизовать
        $(this).text("В корзине");
    });
});
</script> 

Ну и проверка на наличие в корзине. Тут все также, через CSaleBasket::GetList.
Целиком примерно так
Код
<?
$dbBasketItems = CSaleBasket::GetList(
    array(
        "NAME" => "ASC",
        "ID" => "ASC"
    ),
    array(
        "FUSER_ID" => CSaleBasket::GetBasketUserID(),
        "LID" => SITE_ID,
        "PRODUCT_ID" => $arResult['ID'], //ID текущего товара
        "ORDER_ID" => "NULL",
        "DELAY" => "N" //Исключая отложенные
    ),
    false,
    false,
    array("PRODUCT_ID")
);
while ($arItemsBasket = $dbBasketItems->Fetch()) {
    $itInBasket = $arItemsBasket['PRODUCT_ID'];
}
?> 

<? if (isset($itInBasket)) { ?>
    <a href="<?echo $arResult["ADD_URL"];?>" class="to_basket in_basket">В корзине</a>
<?} else {?>
    <a href="<?echo $arResult["ADD_URL"];?>" class="to_basket">В корзину</a>
<?}?> 

<script>
$(document).ready(function () {
    $('.to_basket').click(function () {
        $(this).addClass('in_basket'); //Добавляем class in_basket если хотим стилизовать
        $(this).text("В корзине");
    });
});
</script> 
 
Михаил спасибо за ответ, у меня кнопка выводиться так:
 
немного не так ка ку меня добавляет
и минус  в том что он не запоминает выбор, т.е. если перезагрузить страницу то сброситься весь js

подскажите Михаил

вот так у меня кнопка идет:
 
http://prntscr.com/nsr5mb
 
А этот способ работает и на catalog.element  и на catalog.section?
 
Цитата
Alex Kan пишет:
$arResult['ID']
Да, только передайте правильно ID товара
$arResult['ID'] - в карточке
$arElement['ID'] - списке

Что бы не передавалось следующим элементам, обнуляйте переменную
unset( $itInBasket);
в конце вывода.
Изменено: Михаил Базаров - 22.04.2020 10:38:54
 
Михаил Базаров, Битрикс случайно не будет кешировать $itInBasket?
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Получение списка Highload блоков с помощью API Битрикс

1С-Битрикс предоставляет мощный инструментарий для обеспечения эффективной работы ваших проектов. Одним из способов упра...

Установка счетчика Яндекс.Метрики на сайт с Content Security Policy (CSP)

Если на вашем сайте не отображаются данные о кликах и скроллинге в Яндекс.Метрике, вероятнее всего, это связано с настро...

Вывести имя пользователя добавившего элемент инфоблока в Битрикс

Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например, автора новости или автора объявлени...

Информация о службе доставки по ее ID, в 1С-Битрикс

Задача: зная ID службы доставки получить необходимую информацию о ней, с помощью API 1С-Битрикс

Установка Битрикс24 "Интернет-Магазин + CRM" на один домен и настройка работы почты.

Задача: установить лицензию "Интернет-Магазин + CRM" на один домен. Что бы crm была доступна по адресу crm...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Прятать или показывать описание раздела каталога

В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый параметр: "Скрывать описание раз...

Ссылка и название раздела в списке новостей Битрикс

Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новость в компоненте "списк новосте...

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

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...