|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2007
Сообщений: 45
|
Заполнение DropDownList через ArrayCollection
Имеется DropDownList, который нужно заполнить данными из MySQL. Работаю через прокладку на php. В итоге в скрипт попадает строка вида "1,Название1;2,Название2;3,Название3", где первая цифра это id (в базе автоинкремент, но это не важно) и второе поле это сам текст, который должен быть в спадающем списке)
Нужно запихнуть эту строку в ArrayCollection так, чтобы потом присвоить свойству DropDownList.dataProvider этот ArrayCollection. В итоге хочу получить возможность получения id записи, которая выбрана в DropDownList. Какие есть варианты реализации? Строку от php могу получить в любом формате (наиболее удобном к обработке) |
|
|||||
Регистрация: Jun 2011
Сообщений: 212
|
либо json, либо amf, либо имеющуюся строку порезать String.split().
json:
amf-прикрутить amf на сервер Добавлено через 2 минуты split - если цифры не важны, то убрать их и что-то вроде var arr:Array = тасамаястрока.split(';'); |
|
|||||
Цитата:
Название элемента может содеражть запятые или точку с запятой? Если нет, то можно так: var resStr:String = "1,Название1;2,Название2;3,Название3"; var arr:Array = resStr.split(";"); var len:int = arr.length; var ac:ArrayCollection = new ArrayCollection(); for(var i:int = 0; i<len; i++) { var o:Object = {}; var props:Array = arr[i].split(","); o.id = props[0]; o.label = props[1]; ac.addItem(o); }
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
Регистрация: Jun 2011
Сообщений: 212
|
Если цифры важны, то сперва split(';'), а потом в цикле для каждого элемента массива split(',')
Добавлено через 2 минуты в json есть экранирование, так что название элемента может содеражть запятые или точку с запятой Добавлено через 5 минут Но лучше json. Сериализовать двумерный массив, а в клиенте втянуть циклом как GBee предложил (уже без split(), конечно). |
|
|||||
Регистрация: Apr 2007
Сообщений: 45
|
Цитата:
Нет, не JSON, Свой php-скрипт. Цифры важны, ибо я хочу, чтобы при выборе нужного названия из списка получить его ID. Цифры в списке светиться не должны. |
|
|||||
Регистрация: Jun 2011
Сообщений: 212
|
Можно и без json в том плане, что любой json_decode будет делать некий подобный парсинг строки.
Поэтому если структура данных усложняться не будет, то обычный split() вполне уместен. |
|
|||||
Регистрация: Apr 2007
Сообщений: 45
|
Да, сплит подходит, я так и сделал. Только мне нужно чтобы в DropDownList-е хранились не только названия, но и id. Если сделать сплит по ";" , то список получается некрасивый:
1,Название1 2,Название2 3,Название3 Но при выборе нужного значения легко вытащить его id и дальше с ним работать. А никак нельзя в DropDownList-е скрыть ненужные данные (сделать невидимыми). Или, как вариант, создать двумерный Array (или ArrayCollection, если возможно), который будет существовать параллельно DropDownList-у. И получать id уже из него, зная itemIndexSelected? |
|
|||||
Регистрация: Jun 2011
Сообщений: 212
|
id и itemIndexSelected - разные вещи. Ничего параллельно создавать не надо.
Схема GBee - оптимальная. По itemIndexSelected получаете нужный элемент и берете его свойство id. |
Часовой пояс GMT +4, время: 18:15. |
|
« Предыдущая тема | Следующая тема » |
|
|