Документация для разработчиков
Темная тема

onBeforeResultAdd

Описание и параметры

функция-обработчик(
 int WEB_FORM_ID,
 array &arFields,
 array &arrVALUES
);
Обработчики события вызываются перед добавлением нового результата веб-формы. Может быть использовано для каких-либо дополнительных проверок или изменения значения полей результата веб-формы. Возврат обработчиком каких-либо значений не предполагается. Ошибки нужно возвращать посредством $APPLICATION->ThrowException().

Параметры

ПараметрОписание
WEB_FORM_ID ID веб-формы.
arFields Массив полей результата для записи в БД.
arrVALUES Массив значений ответов результата веб-формы.

Смотрите также

Пример функции-обработчика

function my_onBeforeResultAdd($WEB_FORM_ID, &$arFields, &$arrVALUES)
{
  global $APPLICATION;
  
  // действие обработчика распространяется только на форму с ID=6
  if ($WEB_FORM_ID == 6) 
  {
    // в текстовый вопрос с ID=135 должен содержать целое число, большее 5ти.
    $arrVALUES['form_text_135'] = intval($arrVALUES['form_text_135']);
    if ($arrVALUES['form_text_135'] < 5)
    {
      // если значение не подходит - отправим ошибку.
      $APPLICATION->ThrowException('Значение должно быть больше или равно 5!');
    }
  }
}
AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Анатолий Кирсанов
По крайней мере в модуле версии 12.0.1 в коде CFormResult::Add:

Код
$arFields = array(
    "TIMESTAMP_X"        => $DB->GetNowFunction(),
    "DATE_CREATE"        => $DB->GetNowFunction(),
    "STATUS_ID"            => $STATUS_ID,
    "FORM_ID"            => $WEB_FORM_ID,
    "USER_ID"            => intval($USER_ID),
    "USER_AUTH"            => "'".$USER_AUTH."'",
    "STAT_GUEST_ID"        => intval($_SESSION["SESS_GUEST_ID"&#93    ,
    "STAT_SESSION_ID"    => intval($_SESSION["SESS_SESSION_ID"&#93    ,
    "SENT_TO_CRM"        => "'N'", // result can be sent only after adding
    );

if ($arrVALUES===false) $arrVALUES = $_REQUEST;
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх