2008-12-19 5 views
1

Je souhaite soumettre les valeurs d'une forme flex à un ColdFusion cfc.Flex: Comment puis-je accéder aux données sous ma forme flex et les soumettre à un cfc ColdFusion?

Si j'ai une forme flex (voir ci-dessous) les données sous la forme d'un objet? Ou dois-je créer un objet basé sur l'identifiant dans le formulaire, puis passer ce nouvel objet au composant coldfusion?

<mx:Form x="10" y="10" width="790" id="myFrom" defaultButton="{createReport}"> 
    <mx:FormItem label="Resume Report Type:"> 
    <mx:RadioButtonGroup id="showtype"/> 
    <mx:HBox> 
     <mx:RadioButton groupName="showtype" id="NotUpdated" value="notupdated" label="Not Updated" width="100" /> 
     <mx:RadioButton groupName="showtype" id="Updated" value="updated" label="Updated" width="75" /> 
     <mx:RadioButton groupName="showtype" id="All" value="all" label="All" width="75" /> 
    </mx:HBox> 
    </mx:FormItem> 
    <mx:FormItem label="User Organzation:"> 
     <mx:ComboBox dataProvider="{qOrganization}" labelField="UserOrganization" /> </mx:FormItem> 

    <mx:FormItem label="Between the following dates:"> 
     <mx:HBox> 
      <mx:DateField/> 
      <mx:DateField left="10"/> 
     </mx:HBox> 
    </mx:FormItem> 
    <mx:FormItem> 

     <mx:Button label="Create Report" id="createReport"/> 
    </mx:FormItem> 
    </mx:Form> 

Répondre

1

Il n'y a aucune donnée liée à aucun des contrôles sous la forme (à l'exception du fournisseur de données pour la zone de liste déroulante). Si vous souhaitez extraire les données du formulaire avec des modifications minimales, attribuer un « id » propriété à chaque contrôle et l'accès à partir d'ActionScript les programme:

var obj : MyObject = new MyObject(); 
obj.beginDate = beginDate.selectedDate; 
obj.endDate = endDate.selectedDate; 
obj.organization = Organization(comboOrg.selectedItem); 
// etc 
1

Non, ce n'est pas une collection ou un objet pour tous les variables de formulaire (ce serait trop facile).

Si c'est ce que vous voulez, vous pouvez créer un objet personnalisé comme Big Red Dog décrit (brd6644). C'est facultatif cependant; vous n'avez pas besoin de créer un objet avant de le renvoyer. Vous pouvez simplement passer chaque champ comme argument en les référençant par leur identifiant. Cela dépend vraiment de la préférence et du fait que vos services des FC sont ou non basés sur l'OO.

Vous avez également la possibilité de créer un modèle de données et l'envoi de ce retour à CF comme ceci:

<!-- DATA MODEL --> 
<mx:Model id="formModel"> 
    <form> 
     <beginDate>{beginDate.selectedDate}</beginDate> 
     <endDate>{endDate.selectedDate}</endDate> 
     <organization> 
      <name></name> 
      <address></address> 
     </organization> 
    </form> 
</mx:Model> 

<!-- REMOTE OBJECT/SERVER SIDE FORM HANDLER --> 
<mx:RemoteObject 
    id="roSubmitForm" 
    source="com.mycfc" 
    destination="ColdFusion" 
    showBusyCursor="true"> 

    <mx:method name="submitForm" result="onSubmit(event)"> 
     <mx:arguments> 
      <form> 
       <beginDate>{formModel.beginDate}</beginDate> 
       <endDate>{formModel.endDate}</endDate> 
       <organization> 
        <name>formModel.organization.name</name> 
        <address>formModel.organization.address</address> 
       </organization> 
      </form> 
     </mx:arguments> 
    </mx:method> 
</mx:RemoteObject> 

Voici plus sur Flex data models ... Je ne suis toujours pas complètement vendu sur leur utilité .. mais c'est une autre option.

Questions connexes