В своих проектах мы часто используем компонент iblock.element.add.form для работы с инфоблоками. Многие знают, что данный компонент можно заставить работать в режиме AJAX добавив следующие параметры:
Заметил, что когда вызываю данный компонент на странице с кириллическим URL, например: "/контакты/" компонент отказывается работать в режиме AJAX.
Решение нашлось следующее:
С помощью функции urldecode() в шаблоне компонента декодировал кодированный URL атрибута формы action.
Из "/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B/" в "/контакты/".
Если есть альтернативные способы решения, добро пожаловать в ответы.
Код |
---|
<?php $APPLICATION->IncludeComponent("bitrix:iblock.element.add.form", ".default", array( "SEF_MODE" => "Y", ... "AJAX_MODE" => "Y", // режим AJAX "AJAX_OPTION_SHADOW" => "N", // затемнять область "AJAX_OPTION_JUMP" => "N", // скроллить страницу до компонента "AJAX_OPTION_STYLE" => "Y", // подключать стили "AJAX_OPTION_HISTORY" => "N", ), false );?> |
Решение нашлось следующее:
Код |
---|
<fоrm name="iblock_add" action="<?=urldecode(POST_FORM_ACTION_URI)?>" method="post" enctype="multipart/form-data" role="form"> |
Из "/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B/" в "/контакты/".
Если есть альтернативные способы решения, добро пожаловать в ответы.