Я пытаюсь обновить свои сообщения в блоге. Поэтому мне нужны предварительно выбранные теги из базы данных. Я могу загрузить и показать их, на данный момент функция автозаполнения больше не работает, но когда я отправляю свой пост, в качестве значения используется только идентификатор, а не значение. Это выглядит так:
"tags" => array:1 [
0 => "22" //that 22 is the id, the value would be something like "abc"
]
Это точка, в которой я предварительно загружаю значения:
<script>
$(document).ready(function(){
var tags = {!! $blog_post->tags->toJson() !!};
var data = $.map(tags, function (obj) {
obj.id = obj.id;
obj.text = obj.name;
return obj;
});
//console.log(data);
$(".tagsAutocomp").select2({
data: data
});
values = []
$.each(data, function(step, data){
values.push(data['id']);
})
$('.tagsAutocomp').val(values).trigger('change');
});
</script>
в этой точке выглядит нормально
<script type="text/javascript">
$('.tagsAutocomp').select2({
placeholder: 'Select an item',
tags: true,
tokenSeparators: [",", " "],
createSearchChoice: function(term, data) {
if ($(data).filter(function() {
return this.text.localeCompare(term) === 0;
}).length === 0) {
return {
id: term,
text: term
};
}
},
multiple: true,
ajax: {
url: '{{route('tags.autocomplete')}}',
dataType: 'json',
delay: 250,
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
</script>
Создание нового сообщения, отлично работает. Конечно, я могу просто установить obj.id = obj.name, но я не думаю, что это чистое решение. У кого-нибудь есть идеи, что я делаю не так? Спасибо!