2010-09-09 73 views
1

我想創建一個由複選框組成的表單,這些複選框基於存儲在數據庫中的數據並通過JSON格式的REST風格的Web服務訪問。此外,其中一些複選框需要根據以上述方式存儲和訪問的其他數據進行預先檢查。根據我的理解,我可以使用repeater創建複選框,但我不確定以下內容並瞭解一些指導/建議。如何創建動態表單?

  1. 如何接收/(使用Flex)
  2. 我怎樣才能「預檢查」複選框中的JSON發送數據。使用jsp,我會遍歷複選框選項的集合,然後遍歷先前選擇的選項,如果兩個值匹配,我會將checked='yes'添加到複選框標記。

回答

0

這應該讓你開始。

這裏是如何用JSON服務進行通信:

<mx:HTTPService id="service" resultFormat="text" url="http://json service url" result="onJSONLoad(event)" /> 
  • ID - 給控制變量名,所以我們可以在以後引用它。
  • url - 指向我們正在加載的JSON數據的url
  • 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> 

而且UI元素觸發發送事件

<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); 
}