2010-09-09 37 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); 
}