Ну вот могу вам рабочий код проекта скинуть. Все работает.
function formatState (state) {
if (!state.id) {
return state.text;
}
var $state = $(
'<span>' + state.text + '</span>'
);
return $state;
};
$('select[name="projects[]"]').select2({
ajax: {
url: "/manager/project/find-projects",
dataType: 'json',
type : 'POST',
delay: 250,
data: function (params) {
return {
q: params.term,
};
},
processResults: function (data, page) {
return {
results: data
};
},
cache: true
},
initSelection: function(element, callback) {
var array = [];
$(element).find('option:selected').each(function() {
var obj = {id : $(this).val(), name : $(this).text()};
array.push(obj);
});
callback(array);
},
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 1,
templateResult: formatState,
templateSelection: formatState
});