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

GetResultAnswerArray

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

CForm::GetResultAnswerArray(
 int form_id,
 array &columns,
 array &answers,
 array &answers2 = array(),
 array filter = array(),
)

Возвращает массивы, описывающие вопросы и поля веб-формы, а также ответы на вопросы. Метод нестатический.

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

Параметр Описание С версии
form_id ID формы. Удален с 3.3.10
columns Параметр примет значение ссылки на массив, описывающий те вопросы и поля формы, которые:
  1. активны;
  2. включены в таблицу результатов.
Ключами данного массива являются ID вопросов/полей, а значениями - массив, описывающий сам вопрос/поле, в свою очередь, имеющий следующие ключи:
  • ID - ID вопроса/поля;
  • FORM_ID - ID формы;
  • TIMESTAMP_X - дата изменения вопроса/поля;
  • ACTIVE - флаг активности [Y|N];
  • TITLE - текст вопроса, либо заголовок поля;
  • TITLE_TYPE - тип текста;
  • SID - символьный идентификатор вопроса/поля;
  • C_SORT - порядок сортировки;
  • ADDITIONAL - если Y - то данная запись является вопросом; если N - то полем формы;
  • REQUIRED - флаг обязательности ответа на вопрос [Y|N];
  • IN_FILTER - флаг показывающий отражен ли вопрос/поле в фильтре формы результатов [Y|N];
  • IN_RESULTS_TABLE - флаг показывающий отображается ли вопрос/поле в таблице результатов [Y|N];
  • IN_EXCEL_TABLE - флаг показывающий отображается ли вопрос/поле в Excel-таблице результатов [Y|N];
  • FIELD_TYPE тип поля, возможны следующие значения:
    • text - текст;
    • integer - число;
    • date - дата.
  • IMAGE_ID - ID изображения в описании вопроса;
  • COMMENTS - служебный комментарий;
  • FILTER_TITLE - заголовок поля фильтра по данному вопросу/полю;
  • RESULTS_TABLE_TITLE - заголовок столбца таблицы результатов.
Пример:
Array
(
    [140] => Array
        (
            [ID] => 140
            [FORM_ID] => 4
            [TIMESTAMP_X] => 19.05.2005 11:42:04
            [ACTIVE] => Y
            [TITLE] => Фамилия, имя, отчество
            [TITLE_TYPE] => html
            [SID] => VS_NAME
            [C_SORT] => 100
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => N
            [IN_EXCEL_TABLE] => N
            [FIELD_TYPE] => 
            [IMAGE_ID] => 
            [COMMENTS] => 
            [FILTER_TITLE] => 
            [RESULTS_TABLE_TITLE] => 
        )

    [144] => Array
        (
            [ID] => 144
            [FORM_ID] => 4
            [TIMESTAMP_X] => 11.11.2004 18:11:21
            [ACTIVE] => Y
            [TITLE] => Какие области знаний вас интересуют ?
            [TITLE_TYPE] => text
            [SID] => VS_INTEREST
            [C_SORT] => 500
            [ADDITIONAL] => N
            [REQUIRED] => N
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] => 
            [IMAGE_ID] => 
            [COMMENTS] => 
            [FILTER_TITLE] => 
            [RESULTS_TABLE_TITLE] => 
        )
    ...
)
answers Параметр примет значение ссылки на массив, содержащий ответы на вопросы формы, а также значения полей формы. Ключами данного массива являются:
  • RESULT_ID - ID результата;
  • FIELD_ID - ID вопроса/поля;
  • SID - символьный идентификатор вопроса/поля;
  • TITLE - текст вопроса или заголовок поля веб-формы;
  • TITLE_TYPE - тип текста вопроса, допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • FILTER_TITLE - подпись поля фильтра по данному вопросу/полю;
  • RESULTS_TABLE_TITLE - подпись столбца таблицы результатов;
  • ANSWER_ID - ID ответа;
  • ANSWER_TEXT - параметр ответа ANSWER_TEXT, записанный в таблицу результата;
  • MESSAGE - параметр ответа ANSWER_TEXT, хранящийся в таблице ответов (синоним ключа ANSWER_TEXT);
  • ANSWER_VALUE - параметр ответа ANSWER_VALUE, записанный в таблицу результата;
  • VALUE - параметр ответа ANSWER_VALUE, хранящийся в таблице ответов (синоним ключа ANSWER_VALUE);
  • USER_TEXT - текстовое значение, введенное пользователем;
  • USER_DATE - дата, введенная пользователем (данный ключ может содержать значение, только если FIELD_TYPE="date");
  • USER_FILE_ID - ID файла загруженного пользователем (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • USER_FILE_NAME - оригинальное имя загруженного файла (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • USER_FILE_IS_IMAGE - "Y" - если FIELD_TYPE="image", "N" - если FIELD_TYPE="file"
  • USER_FILE_HASH - уникальный хеш, используемый при показе файла (данный ключ может содержать значение, только если FIELD_TYPE="file");
  • USER_FILE_SUFFIX - суффикс к расширению загруженного файла (данный ключ может содержать значение, только если FIELD_TYPE="file");
  • USER_FILE_SIZE - размер файла в байтах (данный ключ может содержать значение, только если FIELD_TYPE="image" или FIELD_TYPE="file");
  • FIELD_TYPE - тип поля ответа, возможны следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора;
    • checkbox - флаг множественного выбора;
    • dropdown - элемента выпадающего списка одиночного выбора;
    • multiselect - элемента списка множественного выбора;
    • date - поле для ввода дата в календарем;
    • image - поле для ввода изображения;
    • file - поле для ввода произвольного файла;
    • password - однострочное поле для ввода пароля.
  • FIELD_WIDTH - ширина поля ответа;
  • FIELD_HEIGHT - высота поля ответа;
  • FIELD_PARAM - параметры поля ответа.
Пример:
Array
(
    [186] => Array
        (
            [140] => Array
                (
                    [586] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 140
                            [SID] => VS_NAME
                            [TITLE] => Фамилия, имя, отчество
                            [TITLE_TYPE] => html
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 586
                            [ANSWER_TEXT] =>  
                            [MESSAGE] =>  
                            [ANSWER_VALUE] => 
                            [VALUE] => 
                            [USER_TEXT] => Иванов Дмитрий Витальевич
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => text
                            [FIELD_WIDTH] => 50
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => 
                        )
                )

            [144] => Array
                (
                    [594] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 594
                            [ANSWER_TEXT] => иностранные языки
                            [MESSAGE] => иностранные языки
                            [ANSWER_VALUE] => 4
                            [VALUE] => 4
                            [USER_TEXT] => 
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => 
                        )

                    [595] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 595
                            [ANSWER_TEXT] => програмирование
                            [MESSAGE] => програмирование
                            [ANSWER_VALUE] => 5
                            [VALUE] => 5
                            [USER_TEXT] => 
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => SELECTED class=inputcheckbox
                        )
                )
            ...
        )
    ...
)
answers2 Параметр примет значение ссылки на массив, содержащий, по сути, те же данные, что и массив answers, но имеющий несколько другую структуру.

Пример:
Array
(
    [186] => Array
        (
            [VS_NAME] => Array
                (
                    [0] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 140
                            [SID] => VS_NAME
                            [TITLE] => Фамилия, имя, отчество
                            [TITLE_TYPE] => html
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 586
                            [ANSWER_TEXT] => 
                            [MESSAGE] =>  
                            [ANSWER_VALUE] => 
                            [VALUE] => 
                            [USER_TEXT] => Иванов Дмитрий Витальевич
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => text
                            [FIELD_WIDTH] => 50
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => 
                        )

                )


           [VS_INTEREST] => Array
                (
                    [0] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 594
                            [ANSWER_TEXT] => иностранные языки
                            [MESSAGE] => иностранные языки
                            [ANSWER_VALUE] => 4
                            [VALUE] => 4
                            [USER_TEXT] => 
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => 
                        )

                    [1] => Array
                        (
                            [RESULT_ID] => 186
                            [FIELD_ID] => 144
                            [SID] => VS_INTEREST
                            [TITLE] => Какие области знаний вас интересуют ?
                            [TITLE_TYPE] => text
                            [FILTER_TITLE] => 
                            [RESULTS_TABLE_TITLE] => 
                            [ANSWER_ID] => 595
                            [ANSWER_TEXT] => програмирование
                            [MESSAGE] => програмирование
                            [ANSWER_VALUE] => 5
                            [VALUE] => 5
                            [USER_TEXT] => 
                            [USER_DATE] => 
                            [USER_FILE_ID] => 
                            [USER_FILE_NAME] => 
                            [USER_FILE_IS_IMAGE] => 
                            [USER_FILE_HASH] => 
                            [USER_FILE_SUFFIX] => 
                            [USER_FILE_SIZE] => 
                            [FIELD_TYPE] => checkbox
                            [FIELD_WIDTH] => 0
                            [FIELD_HEIGHT] => 0
                            [FIELD_PARAM] => SELECTED class=inputcheckbox
                        )
                )
            ...
        )
    ...
)
filter

Массив для фильтрации выбираемых значений. Необязательный параметр. В массиве допустимы следующие ключи:
  • RESULT_ID* - ID результата (по умолчанию будет искаться точное совпадение);
  • RESULT_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по RESULT_ID будет искаться вхождение;
  • FIELD_ID* - ID вопроса/поля (по умолчанию будет искаться точное совпадение);
  • FIELD_ID_EXACT_MATCH - если значение равно "N", то при фильтрации по FIELD_ID будет искаться вхождение;
  • FIELD_SID* - символьный код вопроса/поля (по умолчанию будет искаться вхождение);
  • FIELD_SID_EXACT_MATCH - если значение равно "Y", то при фильтрации по FIELD_SID будет искаться точное совпадение;
  • IN_RESULTS_TABLE - если значение равно "Y", то ответы на вопрос (либо значения поля веб-формы) будет отображены в таблице результатов;
  • IN_EXCEL_TABLE - если значение равно "Y", то ответы на вопрос (либо значения поля веб-формы) будет отображены в Excel таблице результатов.
* - допускается сложная логика.
arrAnswersVarname 3.3.10. Удален с версии 4.0.4
web_form_id ID формы. 3.3.10
arrAnswersSID 4.0.4

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

// получим данные по результату ID=145
CForm::GetResultAnswerArray($FORM_ID, 
	$arrColumns, 
	$arrAnswers, 
	$arrAnswersVarname, 
	array("RESULT_ID" => "145"));

echo "<pre>";
echo "arrColumns:";
print_r($arrColumns);
echo "arrAnswers:";
print_r($arrAnswers);
echo "arrAnswersVarname:";
print_r($arrAnswersVarname);
echo "</pre>";


© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх