Есть форма с 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. Форматирование не работает.