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

GetMultiSelectField

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

string
CForm::GetMultiSelectField(
 string question_sid,
 array list,
 array values = array(),
 mixed height = "",
 string add_to_multiselect = "class=\"inputselect\""
)

Возвращает HTML код списка множественного выбора, предназначенного для выбора ответов из группы ответов типа "multiselect" на вопрос, символьный идентификатор которого передается в параметре question_sid.

Метод может использоваться как в форме создания нового результата, так и в форме редактирования существующего. Метод нестатический.

Примечание
Имя результирующего HTML поля будет сформировано по следующей маске:
form_multiselect_question_sid[]

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

Параметр Описание С версии
question_sid Символьный идентификатор вопроса.
list Массив ответов типа "multiselect" на вопрос question_sid. Минимально требуемая структура данного массива:
Array
(
    [reference] => array
        (
            [0] => заголовок ответа 1
            [1] => заголовок ответа 2
            [2] => заголовок ответа 3
            ...
        )

    [reference_id] => array
        (
            [0] => ID ответа 1
            [1] => ID ответа 2
            [2] => ID ответа 3
            ...
        )
)
В данном массиве под заголовком ответа понимается параметр ANSWER_TEXT ответа.
values Если в данном параметре будет передан массив со значениями, совпадающими с ID ответов, данные ответы будут выбраны (выделены) в результирующем списке:
<option value="значение элемента" selected>заголовок элемента</option>

Параметр необязательный. По умолчанию - array() (пустой массив).
height Высота результирующего списка множественного выбора:
<select multiple size="height" ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".
add_to_multiselect Произвольный HTML, который будет добавлен в результирующий HTML тег:
<select add_to_multiselect ...>

Параметр необязательный. По умолчанию - "class=\"inputselect\"".

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

<?
/*******************************************
       Редактирование результата
*******************************************/

$RESULT_ID = 12; // ID результата

// если была нажата кнопка "Сохранить" то
if (strlen($_REQUEST["save"])>0)
{
  // используем данные пришедшие с формы
  $arrVALUES = $_REQUEST; 
}
else
{
  // сформируем этот массив из данных по результату
  $arrVALUES = CFormResult::GetDataByIDForHTML($RESULT_ID); 
}
?>
<form action="" method="POST">
<table>
  <tr>
    <td>Ваше образование:</td>
    <td><?

      // символьный идентификатор вопроса
      $QUESTION_SID = "EDUCATION"; 

      // массив описывающий элементы списка множественного выбора
      $arMultiSelect = array (

        "reference" => array (
            "начальное",
            "средне-специальное",
            "высшее",
          ),

        "reference_id" => array (
            602,
            603,
            604,
          ),

        "param" => array (
            "",
            "",
            "checked", // значение по умолчанию
          )
      );

      // получим текущее значение выпадающего списка
      $arValues = CForm::GetMultiSelectValue($QUESTION_SID, $arMultiSelect, $arrVALUES);

      // выведем список множественного выбора
      echo CForm::GetMultiSelectField(
        $QUESTION_SID,           // символьный идентификатор вопроса
        $arMultiSelect,          // массив описывающий элементы списка
        $arValues,               // значения выбранных элементов списка
        10,                      // высота списка
        "class=\"inputselect\""  // стиль списка
        );      
      ?></td>
  </tr>
</table>
<input type="submit" name="save" value="Сохранить">
</form>


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

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

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

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

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