2010-07-13 4 views
1

Я пытаюсь обернуть мозг вокруг получения данных в свой проект таким образом, который я могу использовать. Я хочу использовать MySQL & PHP мое приложение Flashbuilder, и я не заполняю datagrid так.динамически заполняемые текстовые поля в Flashbuilder

Для упрощения в моей базе данных таблица содержит 3 столбца "ID, Title & Content".
Я хочу использовать это, чтобы заполнить различные состояния в моем проекте flashbuilder.

Обычно в веб-страницы, я мог бы сказать в заявлении SQL SELECT * FROM table WHERE ID = 1 получить первую строку информации, и я мог бы поставить свой заголовок и содержание, где я хочу их на моей странице

Я могу изменить запрос SELECT * FROM table WHERE ID = 2, чтобы заполнить страницу 2, чтобы получить ее название и содержание.

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

Кажется, что все примеры в Интернете в основном предназначены для datagrids.

Может кто-то, пожалуйста, помогите мне?

ответ

0

Я постараюсь помочь.

У вас есть таблица базы данных (ID, заголовок, содержание).

Вперед и создайте веб-службу на PHP, которая будет пинговать базу данных и извлекать данные. Я не очень разбираюсь в PHP, поэтому не могу помочь в деталях. Если возможно, я рекомендую использовать что-то вроде AMFPHP или ZendAMF для передачи данных взад и вперед между Flex и PHP.

В Flex вы можете извлекать данные с помощью RemoteObject, WebService или HTTPService. Вы каким-то образом получите данные. Для целей этого примера я предполагаю, что вы используете форму AMF и имеете массив объектов значений.

Каждый объект содержит свойство ID, заголовок и содержимое, представляющее одну строку в таблице базы данных.

Теперь, что вы делаете с этим массивом? Было бы странно пытаться отображать коллекцию данных в одном текстовом вводе. Давайте предположим, что вы хотите создать форму для редактирования первого элемента:

<Form> 
<formItem label="title"> 
<textInput id="titleInput" text="{resultsFromPHP[0].title}" /> 
</formitem> 
<formItem label="content"> 
<textInput id="contentInput" text="{resultsFromPHP[0].content}" /> 
</formitem> 
<formItem > 
<button label="Process Input" click="processInput()" /> 
</formitem> 
</form> 

Итак, у вас есть форма, которая позволяет для входов и имеет кнопку. Просто напишите обработчик кликов:

protected function processInput():void{ 
resultsFromPHP[0].content = contentInput.text 
resultsFromPHP[0].title = titleInput.text 
// call other PHP Service to update data 
} 

Помогло ли это?

Это был код psuedo, который я написал в браузере, и, скорее всего, вам понадобится настройка для компиляции.

+0

Ну, я получил что-то для работы, и я ценю, что вы меня посадили! Я получаю некоторые ошибки привязки «Связывание данных не сможет обнаруживать изменения при использовании оператора квадратных скобок. Для Array используйте ArrayCollection.getItemAt() вместо этого». protected function fetchDB(event:FlexEvent):void { getResults.token = pagesService.getAllPages(); } dmschenk

+0

Вы получаете ошибки или предупреждения? Я рекомендую сохранять getResults.lastResults в локальную переменную, а не напрямую обращаться к вашему сервису. Сделайте это в обработчике результатов. Затем просто измените свой код в качестве предупреждения: text.Page1 = "{savedResult.getItemAt (0).title} " – JeffryHouser

+0

Вы правы ... Я получаю предупреждения. Я дам ему шанс. – dmschenk