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

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-2024, «1С-Битрикс», 2024
Наверх