У меня есть элемент управления тегами select2. Когда тег не существует, пользователь может создать тег. Эти теги сохраняются в базе данных, но проблема в том, что я не знаю, как установить идентификатор тега, возвращенный для успеха ajax.Получите идентификатор из базы данных при создании тега в Select2
$tags.select2({
placeholder: '- Select -',
tags: true,
tokenSeparators: [',', ' '],
createTag: function (params) {
if (params.term.trim() === '') {
return null;
}
return {
id: '', //How to get id here???
text: params.term.toLowerCase(),
newTag: true // add additional parameters
}
},
//Ajax to get tags here ommited
});
$tags.on('select2:select', function (e) {
if (e.params.data.newTag) {
$.ajax({
url: urlAddTag,
type: 'POST',
dataType: "json",
data: { tag: e.params.data.text.toLowerCase() },
success: function (response) {
e.params.data.id = response.id;
},
error: function (xhr, ajaxOptions, thrownError) {
var msg = JSON.parse(xhr.responseText);
}
});
}
});
В АЯКСЕ ответ я заходящий идентификатор, с которым тег был сохранен в базе данных, но я не знаю, как перейти к функции «createTag».
Я думаю, что должен быть другой способ сделать это с обратным вызовом, но тем временем я буду использовать этот взлом, спасибо Дарио –