Чтобы удалить элемент в Битрикс по кнопке в публичной части, вам понадобится выполнить следующие шаги:
1. Создайте кнопку в публичной части сайта, которая будет служить триггером для удаления элемента. Например, вы можете использовать кнопку с классом "delete-button" и атрибутом "data-element-id" для указания идентификатора элемента, который нужно удалить.
<button class="delete-button" data-element-id="123">Удалить элемент</button>
2. Создайте обработчик события клика на кнопке. Вы можете использовать JavaScript для этого. В обработчике вы должны получить идентификатор элемента и отправить запрос на удаление элемента на сервер.
document.querySelector('.delete-button').addEventListener('click', function() { var elementId = this.dataset.elementId; // Отправляем AJAX-запрос на удаление элемента BX.ajax.runAction('my_module.api.deleteElement', { data: { elementId: elementId } }).then(function(response) { // Обработка успешного удаления элемента console.log(response.data.message); }).catch(function(response) { // Обработка ошибки удаления элемента console.error(response.errors); }); });
3. Создайте обработчик запроса на удаление элемента на сервере. Для этого вам понадобится создать обработчик в файле init.php
или в своем модуле.
<?php use BitrixMainLoader; use BitrixMainApplication; use BitrixMainEngineContractControllerable; class MyModuleApi extends CBitrixComponent implements Controllerable { public function configureActions() { return [ 'deleteElement' => [ 'prefilters' => [] ], ]; } public function deleteElementAction($elementId) { Loader::includeModule('iblock'); // Удаление элемента из Инфоблока $element = new CIBlockElement; $result = $element->Delete($elementId); if ($result) { return [ 'status' => 'success', 'message' => 'Элемент успешно удален' ]; } else { return [ 'status' => 'error', 'errors' => 'Ошибка при удалении элемента' ]; } } }
4. Убедитесь, что ваш модуль my_module
активирован на сайте и импортирован в файл init.php
. Также убедитесь, что модуль iblock
также активирован и настроен соответствующий инфоблок, из которого нужно удалить элементы.
Теперь, при клике на кнопку удаления элемента в публичной части сайта, будет отправлен AJAX-запрос на сервер, который удалит элемент с указанным идентификатором из инфоблока.