2010-09-09 7 views
1

Je souhaite créer un formulaire composé de cases à cocher basées sur des données stockées dans une base de données et accessibles via un service Web RESTful au format JSON. De plus, certaines de ces cases à cocher devront être pré-vérifiées, en fonction d'autres données stockées et accédées de la manière décrite ci-dessus. D'après ce que je comprends, je peux utiliser un repeater pour créer les cases à cocher, mais je ne suis pas sûr de ce qui suit et apprécie quelques conseils/suggestions.Comment créer un formulaire dynamique?

  1. Comment recevoir/envoyer des données en JSON (en utilisant Flex)
  2. Comment puis-je 'pré-vérifier' les cases à cocher. Avec jsp, je parcourais la collection d'options de case à cocher, puis je parcourais les options précédemment sélectionnées et si les deux valeurs correspondaient, j'ajoutais checked='yes' à la balise checkbox.

Répondre

0

Cela devrait vous aider à démarrer.

Voici comment communiquer avec un service de JSON:

<mx:HTTPService id="service" resultFormat="text" url="http://json service url" result="onJSONLoad(event)" /> 
  • id - donner le contrôle d'un nom de variable afin que nous puissions y faire référence plus tard.
  • url - l'URL qui pointe vers les données JSON que nous sommes en train de charger
  • resultFormat - le format dans lequel nous voulons que les données nous soient renvoyées. (Dans ce cas, juste le texte brut). Resultat - gestionnaire d'événements appelé lors du chargement des données.

puis pour obtenir les données:

    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 
} 

pour envoyer des données:

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

et un élément d'interface utilisateur pour déclencher un événement d'envoi

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

Maintenant, voici votre Méthodes 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); 
} 

Et quelque chose pour montrer qu'il fonctionne

private function updatedPHPDataResult(event:ResultEvent):void 
{ 
    lblStatus.text = String(event.result); 
} 
Questions connexes