2015-08-28 4 views
-4

Я хочу, чтобы загрузить этот JSON в selectize:нагрузки многомерный массив JSON объектов в selectize.js

{"platforms": 

[{"id":32,"name":"Sega Saturn","slug":"saturn"}, 

{"id":14,"name":"Mac","slug":"mac"}, 

{"id":47,"name":"Virtual Console (Nintendo)","slug":"vc"}, 

{"id":34,"name":"Android","slug":"android"}, 

{"id":84,"name":"SG-1000","slug":"sg1000"}, 

{"id":58,"name":"Super Famicom","slug":"sfam"}, 

{"id":82,"name":"Web browser","slug":"browser"}] 

} 

Я хотел бы, чтобы работать очень похож на this example provided by the Selectize.js developers (за исключением части URL в каждом), за исключением того, очевидно, вместо предварительно сделанных идентификаторов и имен, используя мои данные json.

Любая помощь приветствуется.

код В настоящее время я пытаюсь использовать:

options: [ 
    for (var i = 0; i < platforms.platforms.length; i++) 
    { 
     var counter = platforms.platforms[i]; 
     {id: counter.id, title: counter.name}, 
     console.log(counter.name); 
    } 

Вот что JSON выглядит при входе его в консоли:

enter image description hereenter image description here

EDIT:This is another example that I'm looking at as it uses JSON.

+0

Что ваш вопрос? – klenium

+0

У меня возникли проблемы с разбором этого конкретного JSON в поле selectize select. Я хотел бы основать его на этом примере. – AllTheGoodNamesWereTaken

+0

Что это значит? Какая «проблема» у вас? Что вы пытались использовать? Что такое сообщение об ошибке? Что не так в изображении? Похоже, это так. – klenium

ответ

3

Вы не можете использовать for insi de array/object, когда вы объявляете переменную. Javascript не является шаблоном, как PHP & HTML.

Вы также пропустили .slug. Попробуйте следующее:

var data = JSON.parse('{"platforms":[{"id":32,"name":"Sega Saturn","slug":"saturn"},{"id":14,"name":"Mac","slug":"mac"},{"id":47,"name":"Virtual Console (Nintendo)","slug":"vc"},{"id":34,"name":"Android","slug":"android"},{"id":84,"name":"SG-1000","slug":"sg1000"},{"id":58,"name":"Super Famicom","slug":"sfam"},{"id":82,"name":"Web browser","slug":"browser"}]}'); 
var options = []; 
$.each(data.platforms, function() 
{ 
    options.push({ 
     id: this.id, 
     title: this.name, 
     url: "hhtp://site.com/"+this.slug 
    }); 
}); 
var $select = $('#select-tools').selectize({ 
    maxItems: null, 
    valueField: 'id', 
    labelField: 'title', 
    searchField: 'title', 
    options: options, 
    create: false 
}); 
+0

Это не работает, но код в порядке. (Нет ошибок). Selectize.js по какой-то причине не нравится этот код. Ни один из его пользовательских загрузок CSS или JS, и на странице есть пустой поле выбора. – AllTheGoodNamesWereTaken

+0

Я обновил свое сообщение другим примером, также я специально упустил «.slug», так как я не хотел ничего с этим делать. Как я мог просто заставить его ничего не делать с этим? – AllTheGoodNamesWereTaken

+0

Я не знаю, что должен сделать второй пример, что вы хотите от него сделать. Если у вас есть вопрос, который является реальным вопросом, спросите его, но мы не можем понять, что вы хотели бы видеть, и не будете делать работу за вас. – klenium

2

Код, который вы показываете, имеет несколько синтаксических ошибок. Вы не очень хорошо знакомы с JavaScript?

@klenium прав, как по его предложению, так и путем отображения полного кода, который может работать сам по себе. Вы должны перейти на сайт, например Plunkr или JSFiddle, добавить правильный импорт, запустить там этот код, и если он не сделает то, что вы ожидаете, поставьте здесь ссылку на страницу, чтобы мы могли проверить, что было не так.

Примечание: один интерес Selectize является то, что он может получить почти любые данные без предварительной обработки, поэтому код, вероятно, может быть уменьшен до (непроверенный!):

var $select = $('#select-tools').selectize({ 
    maxItems: null, 
    valueField: 'id', 
    labelField: 'title', 
    searchField: 'title', 
    options: data.platforms, // Just use the Json data as it is 
    create: false 
}); 
+0

Вы правы, я пытаюсь изучить Javascript, когда я иду. Как я чувствую, я так лучше учился. Я ценю подсказку, и после того, как обзор кода klenium действительно на самом деле работал, это был всего лишь мой HTML-код, который вызывал проблемы. Благодарю. – AllTheGoodNamesWereTaken