Задать вопрос
Diversia
@Diversia

Как выбрать в select2 пункты по умолчанию?

Есть форма с select и плагином select2:

<?
while($arFieldsPers = $res->Fetch())
{
	$personList[$arFieldsPers['ID']] = array(
				'id' => $arFieldsPers['ID'],
		'text' => $name,
		'status' => $status,
		'img' => $img,
		'date' => $date
	);
}
?>
			<select class="personActor form-control" name="actorsMain[]" multiple>
				<option></option>
				<?
				foreach ($arProps['actorsMain']["VALUE"] as $v) {
					echo "<option value='".$personList[$v]['id']."' selected>".$personList[$v]['text']." ".$personList[$v]['date']."</option>";
				}
				?>
			</select>

javascript
function formatDetail(detail) {
		if (!detail.id) { 
			return detail.text; 
		}
	
		var $detail = $(
			'<div><div class="img"><img src="' + detail.img + '"></div><div class="info">' + detail.text + '<br><small>' + detail.date + '' + detail.status + '</small></div></div>'
		);
		return $detail;
	};
	$('.personActor').select2({

		width: '100%',
		placeholder: 'Имя персоны',
		language: "ru",
		theme: "bootstrap",
		allowClear: true,
		//tags: true,
		minimumInputLength: 3,
		//closeOnSelect: false,
		tokenSeparators: [',',';'],

		ajax: {
			url: "/local/ajax.php",
			dataType: 'json',
			delay: 500,
			data: function (params, page) {
				return {
					q: params.term,
				};
			},
			processResults: function (data) {
				return {
					results: data
				};
			},
			cache: true
		},

		templateResult: formatDetail,
		templateSelection: formatDetail
	});

Когда ввожу в поле, данные подгружаются через ajax - все отображается корректно. Форматирование при вывода осуществляется при помощи функции formatDetail.
Проблема в том, что изначально поле select уже должно содержать данные из массива с форматирование функцией formatDetail. Форматирование не работает.
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы