помогите пожалуйста с созданием массива на яваскрипт

(Ответов: 2, Просмотров: 372)
  1. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Ребята помогите с массивом пожалуйста, капец не доходит до меня и все тут.
    Вопрос в следующем
    есть такой плагин: http://select2.github.io/
    не могу никак сделать чтобы он принимал уже выбраные параметры из базы
    из базы приходит строка
    10|11|13|14|15

    надо из нее сделать массив вида:
    var data = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }];

    причем ключ TEXT должен браться из тех input которые находятся в select

    че я уже только не пробовал, он не отображает то что выбрано было
    ------------------------------------------------------------------------------------------

    плагин устроен, он как то принимает параметры чтобы вывести уже выбраные "теги"
    но я не могу понять как.
    насколько мне хватило переводчика и ума понять все это, что сам плагин принимает эти параметры(для вывода уже выбраных тегов) в виде массива.

    нарыл вот такой кусок
    Код:
    initSelection: function(element, callback) {
    	var data = [];
    	$(element.val().split(",")).each(function(i) {
    		var item = this.split(':');
    		data.push({
    			id: item[0],
    			title: item[1]
    		});
    	});
    	//$(element).val('');
    	callback(data);
    }
    но не могу сформировать массив нужного формата из строки

    ПС: этот метод устарел в 4 версии плагина. в доке написано что надо использовать http://select2.github.io/options.html#dataAdapter
    но что это такое и как этим пользоваться у меня пока понятия нет, хочу понять - объяснил бы кто нибудь

    ППС: код инициализации плагина у меня
    Код:
    $('.skillList').select2({
    		width: '100%',
    		tags: true,
    		maximumSelectionLength: 5,
    		hideSelectionFromResult: true,
    		language: "ru",
    		placeholder: {
    			id: "-1",
    			text: "нажмите для выбора вариантов"
    		}
    	});
    • 0
  2. Дипломник
    • Регистрация: 29.11.2009
    • Сообщений: 131
    • Репутация: 32
    Я с 3 версией работал и там, если селект был multiple (что как у вас, насколько я понял), то ему нужно было в качестве значений передавать массив со значениями value у выбранных option'ов, т.е. что-то типа [1,3,4]
    Как в 4 версии - я не знаю. Для 3 были примеры же с исходным кодом, неужели их убрали?
    • 0
  3. [web-developer] Аватар для cOAPerator
    • Регистрация: 22.02.2011
    • Сообщений: 615
    • Репутация: 111
    • Webmoney BL: ?
    Весёлый химик, да, у меня multiple. на офсайте доки к 4 версии
    к сожалению для 3 версии ничего не нашел(хотя дофига перерыл всего включая гугл)

    пробовал я вариант $('.skillList').select2('data', [1,3,4] );

    выдает ошибку Uncaught TypeError: object is not a function (Invalid arguments for Select2)
    ругается на data как я понимаю

    UPD: решение найдено
    как оказалось, для 4 версии плагина надо ПЕРЕД осовной инициализацией плагина сделать еще одну, которая принимает в качестве массива ID пунктов которые надо выбрать, что то типа такого:
    Код:
    	data = $('.skillList').attr('data-selected-arr');
    	data = data.split("|");
    	$('.skillList').val(data);
    ПС: в документации про это ни слова! есть только упоминание что метод initSelection устарел и будет удален в следующих версиях.
    на данный момент последняя версия 4.0.0 - beta3
    Последний раз редактировалось cOAPerator; 16.02.2015 в 04:38.
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Помогите советом пожалуйста!
Вопросы от новичков 8 19.02.2015 17:31
Как скрыть все не нужные ссылки в яваскрипт?
Web программирование 7 16.04.2013 16:20
Помогите разобраться пожалуйста!)
Вопросы от новичков 1 09.03.2012 20:39
Помогите пожалуйста :( экзамен
Оффтоп и свободные темы 0 16.06.2011 11:52

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры