У меня есть php-файл, который возвращает строку, подобную этой
["item1","item2","item3","item4"]
Мне нужно создать combobox с ExtJS. Параметры должны быть такими, как 4 варианта. Как бы это сделать, если ссылка php – items.php
. Для того, чтобы все было ясно, мне нужно, чтобы combobox displayField
с valueField
combobox displayField
и valueField
имели одинаковые значения, например item1
будет displayField
и valueField
. Заранее спасибо!
PS строка не форматирована Json, я думаю, это массив.
Во-первых, я думаю, вам нужно изменить свой php-скрипт, чтобы он возвращал строку как минимум [["item1"],["item2"],["item3"],["item4"]]
. В противном случае вам придется создать свой собственный считыватель extjs или переопределить метод Ext.data.reader.Array.read.
Во-вторых, ваш магазин должен выглядеть так:
var store = Ext.create('Ext.data.Store', { fields: ['item'], proxy: { type: 'ajax', url: '/items.php', reader: { type: 'array' } } }
В-третьих, ваш combo config должен выглядеть так:
Ext.create('Ext.form.ComboBox', { store: store, displayField: 'item', valueField: 'item' });
Если вы решите использовать свой исходный php-скрипт, вы можете взглянуть на то, как определить своего собственного читателя (есть обсуждаемый json-ридер, но вы можете понять, как реализовать этот код в вашем считывателе массивов)