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

Как из select2 извлечь дополнительное значение?

Использую плагин select2 ver. 4. В форме получаю список сериалов ajax-запросом в поле select:
$('select#serialList').select2({
		width: '100%',
		placeholder: 'Название сериала',
		language: "ru",
		theme: "bootstrap",
		minimumInputLength: 3,
		ajax: {
			url: "ajax.php",
			dataType: 'json',
			delay: 500,
			data: function (params, page) {
				return {
					q: params.term,
				};
			},
			processResults: function (data) {
				return {
					results: data
				};
			},
			cache: true
		},

	});

Данные для списка формируются так (ajax.php):
foreach ($data as $id => $v)
{
	$json[] = [
		'id' => $id,
		'text' => $v['text'],
		'series' => $v['series'], // !!!
		'type' => $v['type'], // !!!
	];
}
print json_encode($json);

Можно ли при выборе элемента из select (выведенного плагином select2) получить значения series и type для динамического создания (заполнения) нового поля в имеющейся форме (form)?
Важно: значения series и type нужно получить не выводя в select#serialList, а создать отдельные поля в форме.
Подскажите пожалуйста, как это реализовать? Это возможно?
  • Вопрос задан
  • 314 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Diversia
@Diversia Автор вопроса
Все оказалось просто:
$('select#serialList').on('select2:select', function (e) {
	var data = e.params.data;
	console.log(data);
});

А еще нужно очищать select, если он не мульти:
$('select#serialList').on('select2:selecting', function (e) {
	$(this).empty().trigger("change");
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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