Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

FORM_HEADER в 1c - bitrix

+11 голос
1
Добрый вечер. Столкнулся с проблемой. Необходимо стилизовать форму. Все шаблоны созданы все вписано, но вот только рою уже второй день и никак не могу понять как же возможно прописать форме и input "class"? 
 
Как я понял сама форма, тег form,  и все прилегающие скрытые теги выводятся одной командой:
 
<?=$arResult["FORM_HEADER"]?> 
 
И также с этой командой выводится ряд скрытых тегов, которые содержать ID формы ID сесии и т.д. 
 
В моем случае необходимо использовать аякс и поэтому мой FORM_HEADER выводит следующие скрытые поля: 
 
    <form name="SIMPLE_FORM_1" action="/novaya-stranitsa.php?bitrix_include_areas=N&amp;clear_cache=Y" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="bxajaxid" id="bxajaxid_b3cad0d48daa554e7f397cad9fd4c4b6_8BACKi" value="b3cad0d48daa554e7f397cad9fd4c4b6">
    <input type="hidden" name="AJAX_CALL" value="Y">
    <script type="text/javascript">
    function _processform_8BACKi(){
    var obForm = top.BX('bxajaxid_b3cad0d48daa554e7f397cad9fd4c4b6_8BACKi').form;
    top.BX.bind(obForm, 'submit', function() {BX.ajax.submitComponentForm(this, 'comp_b3cad0d48daa554e7f397cad9fd4c4b6', true)});
    top.BX.removeCustomEvent('onAjaxSuccess', _processform_8BACKi);
    }
    if (top.BX('bxajaxid_b3cad0d48daa554e7f397cad9fd4c4b6_8BACKi'))
    _processform_8BACKi();
    else
    top.BX.addCustomEvent('onAjaxSuccess', _processform_8BACKi);
    </script>
    <input type="hidden" name="sessid" id="sessid" value="32ffbd7641347dee4e6e6ccc99533dff">
    <input type="hidden" name="WEB_FORM_ID" value="1">
    </form>
 
Тобиш выводится сам скрипт, благодаря которому и работает АЯКС, и + 2 поля в которых насколько я понял содержатся ИД и значения к этому аяксу. 
 
Как разбить FORM_HEADER и собрать самому тег FORM я впринцыпе разобрался, достаточно вывести массив $arResult через print_r и сразу видно как обратится к WEB_FORM_NAME или WEB_FORM_ID 
 
Но вот как собрать еще и AJAX? Где можно посмотреть эти ID и этот скрипт в который они автоматически подставляются Битриксом? Прошу вашей помощи. Мб я где то что то забыл, и т.п. 
 
Весь ход своих действия я описал. 
 
Также я думал что в массиве $arResult в переменной FORM_HEADER как раз и хранится вся эта собираемая информация и думал что её возможно оттуда извлечь. Но к сожалению там вообще пусто... Как же тогда собирается вся эта форма? 
 
Очень буду благодарен за помощь! Заранее Спасибо.
спросил 09 Авг, 14 от Keh192 (300 баллов)

1 Ответ

00 голосов
 
Лучший ответ

С формами не работал, но предположу что можно попробовать такой "хак".

Рядом с template.php положить result_modifier.php (который будет исполнен после кода компонента и перед подключением template.php), а в нём - регулярным выражением подставить класс в тег формы. Примерно так:

<?

$arResult["FORM_HEADER"] = preg_replace("#<form#", "<form class='newclass'", $arResult["FORM_HEADER"]);

?>

Если всё удачно - то и модифицировать шаблон и разбираться с ajaxом не нужно будет =)

ответил 09 Авг, 14 от root (25,590 баллов)
выбран 09 Авг, 14 от Keh192

Похожие вопросы

0 голосов
2 ответов
спросил 24 Апр, 14 от Wildest (500 баллов)
0 голосов
1 ответ
спросил 19 Июль, 15 от mich802 (220 баллов)
0 голосов
1 ответ
спросил 01 Июль, 13 от Serofim (800 баллов)
0 голосов
8 ответов
спросил 16 Май, 13 от Filicia (180 баллов)
0 голосов
4 ответов
спросил 09 Март, 13 от Mageradje (660 баллов)