В своих проектах мы часто используем компонент 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/" в "/контакты/".
Если есть альтернативные способы решения, добро пожаловать в ответы.