Bowen
@Bowen
Японский бог

Как правильно настроить плагин Select2 для вывода данных из базы данных MySQL?

Добрый день!

Передо мной стоит задача, вывести данные из определенной таблицы MySQL в Select.
Так как у плагина Chosen есть много багов, решил перейти на Select2, но и тут не все так просто(для меня). Много раз пытался вывести результаты в Select2 - каждый раз все было безуспешно.

Единственное что я смог добиться, то только этого:
$(document).ready(function(){
	$('select').select2({
		ajax: {
			type: 'GET',
			url: '/engine/ajax/xfields.php',
			dataType: 'json',
			processResults: function(data){
				$.map(data, function(d){
					console.log(d.title);
				});
			}
		}
	});
});
В консоли выводит результаты, а как вывести в Select ?

Буду очень благодарен, за советы-помощь!
  • Вопрос задан
  • 1937 просмотров
Решения вопроса 1
@kirill-93
Ну вот могу вам рабочий код проекта скинуть. Все работает.
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
        });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Bowen
@Bowen Автор вопроса
Японский бог
Проблему решил поменяв версию плагина 4.0.0 на 3.3.2

P.S. Вот сам код(если кому интересно будет)
$(document).ready(function(){
	$('#Organisation').select2({
		multiple: false, // true - Дает возможность мультивыбора 
		ajax: {
			url: '/engine/ajax/xfields.php',
			type: 'GET',
			dataType: 'json',
			quietMillis: 100,
			results: function (data) {
				var results = [];
				$.each(data, function(index, item){
					results.push({
						id: item.id,
						label: item.title
					});
				});
				return {
					results: results
				};
			}
		}
	});
});
html
<input id="Organisation" style="width: 300px;" placeholder="Выберите Организацию">
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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