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

GetDataByID

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

mixed
CForm::GetDataByID(
 int form_id,
 array &form,
 array &questions,
 array &answers,
 array &dropdown,
 array &multiselect,
 string get_fields = "Y"
)

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

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

Параметр Описание С версии
form_id ID веб-формы. С версии 3.3.10 переименован в web_form_id
form Массив, содержащий параметры формы. Ключи данного массива:
  • ID - ID веб-формы;
  • TIMESTAMP_X - дата изменения;
  • NAME - наименование;
  • SID - символьный идентификатор;
  • BUTTON - подпись к кнопке при редактировании результата или создании нового результата;
  • C_SORT - порядок сортировки;
  • IMAGE_ID - ID изображения;
  • DESCRIPTION - описание;
  • DESCRIPTION_TYPE - тип описания, допустимы следующие значения:
    • text - текст;
    • html - HTML код.
  • MAIL_EVENT_TYPE - идентификатор типа почтового события;
  • FILTER_RESULT_TEMPLATE - путь относительно корня к скрипту, отображающему фильтр по результатам веб-форм в административной части модуля;
  • TABLE_RESULT_TEMPLATE - путь относительно корня к скрипту, отображающему таблицу результатов веб-формы в административной части модуля;
  • STAT_EVENT1 - идентификатор event1 типа события для модуля "Статистика";
  • STAT_EVENT2 - идентификатор event2 типа события для модуля "Статистика";
  • STAT_EVENT3 - дополнительный параметр event3 события для модуля "Статистика";
  • QUESTIONS - количество вопросов формы;
  • C_FIELDS - количество полей формы;
  • STATUSES - количество статусов.
Пример:
Array
(
    [ID] => 4
    [TIMESTAMP_X] => 18.05.2005 12:17:05
    [NAME] => Анкета посетителя сайта
    [SID] => ANKETA
    [BUTTON] => Сохранить
    [C_SORT] => 300
    [IMAGE_ID] => 1053
    [DESCRIPTION] => Тестовая форма.
    [DESCRIPTION_TYPE] => text
    [MAIL_EVENT_TYPE] => FORM_FILLING_ANKETA
    [FILTER_RESULT_TEMPLATE] => 
    [TABLE_RESULT_TEMPLATE] => 
    [STAT_EVENT1] => form
    [STAT_EVENT2] => anketa
    [STAT_EVENT3] => 
    [C_FIELDS] => 1
    [QUESTIONS] => 6
    [STATUSES] => 4
)
questions Массив, содержащий вопросы и поля формы. Ключами данного массива являются идентификаторы вопросов/полей, а значениями - массивы, каждый из которых описывает один вопрос/поле.

Ключи массива, описывающего один вопрос/поле:
  • 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
(
    [VS_NAME] => Array
        (
            [ID] => 140
            [FORM_ID] => 4
            [TIMESTAMP_X] => 28.08.2003 11:45:57
            [ACTIVE] => Y
            [TITLE] => Фамилия, имя, отчество
            [TITLE_TYPE] => html
            [SID] => VS_NAME
            [C_SORT] => 100
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] => 
            [IMAGE_ID] => 
            [COMMENTS] => 
            [FILTER_TITLE] => ФИО
            [RESULTS_TABLE_TITLE] => ФИО
        )

    [VS_MARRIED] => Array
        (
            [ID] => 143
            [FORM_ID] => 4
            [TIMESTAMP_X] => 11.11.2004 18:13:21
            [ACTIVE] => Y
            [TITLE] => Вы женаты / замужем ?
            [TITLE_TYPE] => text
            [SID] => VS_MARRIED
            [C_SORT] => 400
            [ADDITIONAL] => N
            [REQUIRED] => Y
            [IN_FILTER] => Y
            [IN_RESULTS_TABLE] => Y
            [IN_EXCEL_TABLE] => Y
            [FIELD_TYPE] => 
            [IMAGE_ID] => 
            [COMMENTS] => 
            [FILTER_TITLE] => Семейный статус
            [RESULTS_TABLE_TITLE] => Семейный статус
        )
    ...    
)

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

Структура массива, описывающего одно поле ответа:
  • ID - ID поля для ответа;
  • FIELD_ID - ID вопроса формы;
  • TIMESTAMP_X - дата изменения поля;
  • MESSAGE - текст [ANSWER_TEXT];
  • C_SORT - порядок сортировки;
  • ACTIVE - флаг активности [Y|N];
  • VALUE - значение [ANSWER_VALUE];
  • FIELD_TYPE - тип поля ответа, допустимы следующие значения:
    • text - однострочное текстовое поле;
    • textarea - многострочное текстовое поле;
    • radio - переключатель одиночного выбора;
    • checkbox - флаг множественного выбора;
    • dropdown - элемента выпадающего списка одиночного выбора;
    • multiselect - элемента списка множественного выбора;
    • date - поле для ввода дата в календарем;
    • image - поле для ввода изображения;
    • file - поле для ввода произвольного файла;
    • password - однострочное поле для ввода пароля.
  • FIELD_WIDTH - ширина поля ответа;
  • FIELD_HEIGHT - высота поля ответа;
  • FIELD_PARAM - параметры поля ответа.
Пример
Array
(
    [VS_NAME] => Array
        (
            [0] => Array
                (
                    [ID] => 586
                    [FIELD_ID] => 140
                    [TIMESTAMP_X] => 2003-08-28 11:45:57
                    [MESSAGE] =>  
                    [C_SORT] => 100
                    [ACTIVE] => Y
                    [VALUE] => 
                    [FIELD_TYPE] => text
                    [FIELD_WIDTH] => 50
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] => 
                )

        )

    [VS_MARRIED] => Array
        (
            [0] => Array
                (
                    [ID] => 589
                    [FIELD_ID] => 143
                    [TIMESTAMP_X] => 2004-11-11 18:13:21
                    [MESSAGE] => да
                    [C_SORT] => 100
                    [ACTIVE] => Y
                    [VALUE] => 
                    [FIELD_TYPE] => radio
                    [FIELD_WIDTH] => 0
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] => SELECTED class="inputradio"
                )

            [1] => Array
                (
                    [ID] => 590
                    [FIELD_ID] => 143
                    [TIMESTAMP_X] => 2004-11-11 18:13:21
                    [MESSAGE] => нет
                    [C_SORT] => 200
                    [ACTIVE] => Y
                    [VALUE] => 
                    [FIELD_TYPE] => radio
                    [FIELD_WIDTH] => 0
                    [FIELD_HEIGHT] => 0
                    [FIELD_PARAM] => 
                )

        )
	...
)


dropdown Массив, предназначенный для построения выпадающих списков одиночного выбора; содержит данные по всем полям ответа типа dropdown.

Пример:
Array
(
    [VS_AGE] => Array
        (
            [reference] => Array
                (
                    [0] => -
                    [1] => 10-19
                    [2] => 20-29
                    [3] => 30-39
                    [4] => 40-49
                    [5] => 50-59
                    [6] => 60 и старше
                )

            [reference_id] => Array
                (
                    [0] => 608
                    [1] => 596
                    [2] => 597
                    [3] => 598
                    [4] => 599
                    [5] => 600
                    [6] => 601
                )

            [param] => Array
                (
                    [0] => NOT_ANSWER
                    [1] => 
                    [2] => SELECTED
                    [3] => 
                    [4] => 
                    [5] => 
                    [6] => 
                )

        )
    ...
)
multiselect Массив, предназначенный для построения списков множественного выбора; содержит данные по всем полям для ответа типа multiselect.

Пример:
Array
(
    [VS_EDUCATION] => Array
        (
            [reference] => Array
                (
                    [0] => начальное
                    [1] => средне-специальное
                    [2] => высшее
                    [3] => ясли с отличием
                )

            [reference_id] => Array
                (
                    [0] => 602
                    [1] => 603
                    [2] => 604
                    [3] => 605
                )

            [param] => Array
                (
                    [0] => 
                    [1] => 
                    [2] => SELECTED
                    [3] => 
                )

        )
    ...
)
get_fields Если значение данного параметра равно "Y", то в массиве questions будут представлены только поля формы.
Если значение равно "" - вопросы и поля формы.
В остальных случаях - в массиве questions будут описаны только вопросы формы.

Параметр необязательный. По умолчанию - "N" (не добавлять в массив questions данные о полях веб-формы).
active Необязательный параметр. 5.1.1

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

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

<?
if (CForm::GetDataByID($FORM_ID, 
    $form, 
    $questions, 
    $answers, 
    $dropdown, 
    $multiselect))
{
    echo "<pre>";
        print_r($form);
        print_r($questions);
        print_r($answers);
        print_r($dropdown);
        print_r($multiselect);
    echo "</pre>";
}
?>


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

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

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

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

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