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

SetField

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

CFormResult::SetField(
 int result_id,
 string field_sid,
 mixed value = false
)

Для указанного результата обновляет значения ответа на вопрос или обновляет значение поля. Метод нестатический.

Параметры метода

Параметр Описание С версии
result_id ID результата.
field_varname Удален с 4.0.4
field_sid Символьный идентификатор вопроса или поля. 4.0.4
value Значение, которое необходимо сохранить. В зависимости от типа обновляемого поля, данный параметр имеет различный формат.
  • При обновлении значения поля, в данном параметре достаточно указать новое значение обновляемого поля.
  • При обновлении значений ответов на вопрос, формат данного параметра следующий:
    array (
    		ID ответа 1 => значение ответа 1,
    		ID ответа 2 => значение ответа 2,
        ...
    )
    Если ответ принадлежит к одним из следующих типов:
    • radio - переключатель одиночного выбора (radio-кнопка);
    • checkbox - флаг множественного выбора (checkbox);
    • dropdown - элемент выпадающего списка одиночного выбора;
    • multiselect - элемент списка множественного выбора,
    то в качестве "значения ответа" достаточно указать "" (пустое значение).

    Если ответ имеет один из следующих типов:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • date - поле для ввода даты;
    • password - поле для ввода пароля,
    то в качестве "значения ответа" необходимо указать значение, которое могло бы быть введено с клавиатуры при ответе на данный вопрос.

    Если ответ имеет один из следующих типов:
    • image - поле для загрузки изображения;
    • file - поле для загрузки произвольного файла.
    то в качестве "значения ответа" необходимо указать массив, описывающий файл и имеющий следующий ключи:
    • name - имя файла;
    • size - размер файла;
    • tmp_name - временный путь на сервере;
    • type - тип загружаемого файла.
    Такой массив можно получить с помощью функции CFile::MakeFileArray.
Параметр value необязательный. С версии 4.0.4 значение по умолчанию - "false" (значение поля или значение ответа на вопрос будут просто удалены).

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

Примеры использования

$RESULT_ID = 186;

/**************************************************************
            Обновление значений ответов на вопросы
**************************************************************/

// обновим ответ на вопрос "Фамилия, имя, отчество"
$arVALUE = array();
$FIELD_SID = "VS_NAME"; // символьный идентификатор вопроса
$ANSWER_ID = 586; // ID поля ответа
$arVALUE[$ANSWER_ID] = "Иванов Иван";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Дата рождения"
$arVALUE = array();
$FIELD_SID = "VS_BIRTHDAY"; // символьный идентификатор вопроса
$ANSWER_ID = 587; // ID поля ответа
$arVALUE[$ANSWER_ID] = "18.06.1975";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Какие области знаний вас интересуют?"
$arVALUE = array();
$FIELD_SID = "VS_INTEREST"; // символьный идентификатор вопроса
$arVALUE[612] = ""; // ID поля ответа "математика"
$arVALUE[613] = ""; // ID поля ответа "физика"
$arVALUE[614] = ""; // ID поля ответа "история"
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Фотография"
$arVALUE = array();
$FIELD_SID = "VS_PHOTO"; // символьный идентификатор вопроса
$ANSWER_ID = 607; // ID поля ответа
$path = $_SERVER["DOCUMENT_ROOT"]."/images/news.gif"; // путь к файлу
$arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

// обновим ответ на вопрос "Резюме"
$arVALUE = array();
$FIELD_SID = "VS_RESUME"; // символьный идентификатор вопроса
$ANSWER_ID = 610; // ID поля ответа
$path = $_SERVER["DOCUMENT_ROOT"]."/docs/alawarauthorarea.doc"; // путь к файлу
$arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
CFormResult::SetField($RESULT_ID, $FIELD_SID, $arVALUE);

/**************************************************************
                Обновление значений полей
**************************************************************/

// обновим значение поля "Рассчитанная стоимость"
$FIELD_SID = "VS_PRICE"; // символьный идентификатор вопроса
$VALUE = "155";
CFormResult::SetField($RESULT_ID, $FIELD_SID, $VALUE);
?>


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх