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

После отправки формы добавить данные

00 голосов
4
У меня есть форма, созданная черз админку. Через админку же создан шаблон формы.

На странице я ее вызываю так:

Код
<?$APPLICATION->IncludeComponent(
  "bitrix:form",
  ".default",
  Array(
    "AJAX_MODE" => "N",
    "SEF_MODE" => "N",
    "WEB_FORM_ID" => "41",
    "RESULT_ID" => $_REQUEST["RESULT_ID"],
    "START_PAGE" => "new",
    "SHOW_LIST_PAGE" => "N",
    "SHOW_EDIT_PAGE" => "N",
    "SHOW_VIEW_PAGE" => "N",
    "SUCCESS_URL" => "?questionresult=ok",
    "SHOW_ANSWER_VALUE" => "N",
    "SHOW_ADDITIONAL" => "N",
    "SHOW_STATUS" => "Y",
    "EDIT_ADDITIONAL" => "N",
    "EDIT_STATUS" => "Y",
    "CHAIN_ITEM_TEXT" => "",
    "CHAIN_ITEM_LINK" => "",
    "IGNORE_CUSTOM_TEMPLATE" => "N",
    "USE_EXTENDED_ERRORS" => "N",
    "CACHE_TYPE" => "A",
    "CACHE_TIME" => "3600",
    "AJAX_OPTION_SHADOW" => "N",
    "AJAX_OPTION_JUMP" => "N",
    "AJAX_OPTION_STYLE" => "N",
    "AJAX_OPTION_HISTORY" => "N",
    "VARIABLE_ALIASES" => Array(
      "action" => "action"
    )
  )
);?>


1. Как в эту форму передать значения, например полученные через GET и вставить в поля формы?
2. Как после отправки формы произвести какие-нибудь действия с данными, и записать их в результаты формы? Например, у меня есть в форме поля "Имя", "Фамилия", а я хочу их объединить и результат я записать в поле "Имя_фамилия".

Нашел пример с onAfterResultAdd, но он у меня не срабатывает (или я что-то не так делаю).

Спасибо.
спросил 24 Фев, 13 от MrLonG (200 баллов)

4 Ответы

00 голосов
На странице

http://geodom.ru/vacancy/injener-geodezist/

скрытое поле 'должность' заполняется java скриптом. Это самый простой способ сделать поле таким, каким надо, даже со стандартным шаблоном формы. Посмотрите код страницы.
ответил 24 Фев, 13 от Plasma50 (360 баллов)
00 голосов
Может я чего путаю, но править шаблон компонента формы достаточно проблематично.
Гораздо проще залезть в bitrix/form/component.php и произвести все нужные операции уже там, перед самым сохранением.
ответил 11 Март, 13 от BREAREUS (180 баллов)
00 голосов
Вы что-то путаете.

1. javascript вы можете поместить на странице в любом месте. До формы, или после формы. Не важно. Править шаблон не обязательно.

2. править шаблон не сложно.

3. вы не боитесь, что файл bitrix/form/component.php может измениться после обновления битрикса?

4. А вообще, для того чтобы изменить результат формы, самое правильное - использовать событие onBeforeResultAdd
ответил 11 Апр, 13 от Plasma50 (360 баллов)
00 голосов
Через javascript -- это понятно, но мне такой подход не нравится, и не подйдет в моем случае.

Цитата
Da Gada пишет:
Гораздо проще залезть в bitrix/form/component.php и произвести все нужные операции уже там, перед самым сохранением.


Как отметили ниже, править файлы ядра не очень хорошо. Хотя, я бы внес кое-какие правки в функции, которые рисуют начало формы.

В итоге, получилось сделать, что нужно, с помощью onBeforeResultAdd -- написал свою функцию, добавил хендлер перед вызовом формы.
ответил 05 Авг, 13 от MrLonG (200 баллов)

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

0 голосов
0 ответов
0 голосов
3 ответов
0 голосов
2 ответов
0 голосов
4 ответов
спросил 13 Янв, 14 от Meinherz (120 баллов)
0 голосов
3 ответов