Доброго времени,
обновил до php 8.1, вышла ошибка Undefined constant "" (0) в init.php.
в init все стандартно, на php 7.4 все работает.
function yourHandler($WEB_FORM_ID, $RESULT_ID)
{
if ($WEB_FORM_ID == 6) // id формы
{
// получение результатов формы
$arAnswers = CFormResult::GetDataByID(
$RESULT_ID,
array(),
$arResult,
$arAnswer2
);
// выбранный прибор
$selectedDevice = $_POST["form_dropdown_OBORUDOVANIE"];
// id вопросов
$data = array(
"fio" => $arAnswers["ZAYAVITEL"][0]["USER_TEXT"],
"position" => $arAnswers["DOLGNOST"][0]["USER_TEXT"],
"organization" => $arAnswers["ORGANIZATION"][0]["USER_TEXT"],
"research" => $arAnswers["ISSLEDOVANIE"][0]["USER_TEXT"],
"presence" => $arAnswers["PRISUTST_ZAKAZCHIKA"][0]["ANSWER_TEXT"],
"date_start" => $arAnswers["DATA_FROM"][0]["USER_TEXT"],
"date_end" => $arAnswers["DATA_BEFORE"][0]["USER_TEXT"],
"phone" => $arAnswers["PHONE"][0]["USER_TEXT"],
"email" => $arAnswers["EMAIL"][0]["USER_TEXT"],
"notice" => $arAnswers["PRIMICHANIE"][0]["USER_TEXT"],
"device" => $selectedDevice,
);
$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);
// записываем выбранный прибор в таблицу с результатами
$arVALUE = array();
$FIELD_SID = "PRIBOR"; // символьный идентификатор вопроса
$ANSWER_ID = 48; // ID поля ответа
$arVALUE[$ANSWER_ID] = $selectedDevice;
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);
$file = $_SERVER["DOCUMENT_ROOT"]."/zayavki.txt";
$current = file_get_contents($file);
$current .= $json_data."\n";
file_put_contents($file, $current);
// отправленные в форме данные в $arAnswers, можно что-то с ними сделать
}
}
AddEventHandler("form", "onAfterResultAdd", "yourHandler");
AddEventHandler("form", "onAfterResultUpdate", "yourHandler");
Ошибка ругается на AddEventHandler("form", "onAfterResultUpdate", "yourHandler");