Как создать динамическую форму? - PullRequest
1 голос
/ 09 сентября 2010

Я хочу создать форму, состоящую из флажков, основанную на данных, хранящихся в базе данных и доступных через веб-сервис RESTful в формате JSON. Кроме того, некоторые из этих флажков необходимо предварительно проверить, основываясь на других данных, хранящихся и доступных способом, описанным выше. Из того, что я понимаю, я могу использовать repeater для создания флажков, но я не уверен в следующем и ценю некоторые рекомендации / предложения.

  1. Как получать / отправлять данные в формате JSON (используя Flex)
  2. Как я могу предварительно проверить флажки. С jsp я бы перебрал коллекцию опций флажка, а затем перебрал все ранее выбранные опции, и если два значения совпадают, я бы добавил checked='yes' к тегу флажка.

1 Ответ

0 голосов
/ 10 сентября 2010

Это должно помочь вам начать.

Вот как связаться со службой JSON:

<mx:HTTPService id="service" resultFormat="text" url="http://json service url" result="onJSONLoad(event)" />
  • id - Дайте элементу управления имя переменной, чтобы мы могли ссылаться на него позже.
  • url - URL, который указывает на загружаемые нами данные JSON
  • resultFormat - формат, в котором мы хотим, чтобы данные возвращались нам. (В данном случае, просто необработанный текст).
  • результат - обработчик события, который вызывается при загрузке данных.

затем, чтобы получить данные:

                    import mx.rpc.events.ResultEvent;
            import com.adobe.serialization.json.JSON;

            private function onJSONLoad(event:ResultEvent):void
            {
                //get the raw JSON data and cast to String
                var rawData:String = String(event.result);

                //decode the data to ActionScript using the JSON API
                //in this case, the JSON data is a serialize Array of Objects.
                var arr:Array = (JSON.decode(rawData) as Array);

                //do something with the Array
}

Для отправки данных:

<mx:HTTPService id="sendData" url="url of JSON service"
   useProxy="false" method="GET" resultFormat="text"
   result="updatedPHPDataResult(event)">
</mx:HTTPService>

И элемент пользовательского интерфейса для запуска события отправки

<mx:Button x="10" y="259" label="UpdateDatabase" id="butUpdate" click="{sendPHPData()}"/>

Теперь вот ваши методы ActionScript:

private function sendPHPData():void
{
  var objSend:Object = new Object();
  var dataString:String = JSON.encode(dataArray.toArray());
  dataString = escape(dataString);
  objSend.setTutorials = "true";
  objSend.jsonSendData = dataString;
  sendData.send(objSend);
}

И что-то, чтобы показать, что это работает

private function updatedPHPDataResult(event:ResultEvent):void
{
  lblStatus.text = String(event.result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...