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

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