Bonjour,
J'ai un code de formulaire en flex qui fonctionne correctement. Si vous voyez des améliorations à apporter dites le.
Cependant je ne sais pas comment rendre une partie du formulaire extensible. Je m'explique : J'ai un objet avec un nom, ... et des caractéristiques qui peuvent au nombre de 1 à n . Donc j'ai fait un canevas qui permet de rajouter des caractéristiques mais je ne sais pas comment faire l'ajout au niveau de l'as3 avec l'id et pour la transmission des renseignées avec amfphp.
voici le code du composant de caractéristiques:
et le code du formulaire principale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" > <mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.core.ComponentDescriptor; public function delete_meta_state_box():void { this.parent.removeChild(this); } ]]> </mx:Script> <mx:Model id="_model_type"> <states> <state label="Texte"/> <state label="Entier"/> </states> </mx:Model> <mx:FormHeading label="Caractéristique" /> <mx:FormItem label="nom"> <mx:TextInput id="_form_name" text="" /> </mx:FormItem> <mx:FormItem label="type"> <mx:List id="_type" rowCount="2" dataProvider="{_model_type.state}" /> </mx:FormItem> <mx:HBox width="100%" horizontalAlign="center"> <mx:Button label="Supprimer" click="delete_meta_state_box()" /> </mx:HBox> </mx:Canvas>
Donc Je peux rajouter des caractéristiques en appuyant sur le bouton ajouter mais comment je récupère les valeurs des caractéristiques, comment je les distinguent et commment je les transmets ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103 <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:meta_object="object.ihm.*" > <mx:RemoteObject id="asg" source="forms.object.Object" destination="zend" fault="faultHandler(event)" showBusyCursor="true"> <mx:method name="save" result="form_object_object_save_result(event)" fault="faultHandler(event)" /> <mx:method name="get" result="form_object_object_get_result(event)" fault="faultHandler(event)" /> </mx:RemoteObject> <mx:Form id="_object"> <mx:FormHeading label="Propriétés de l'entité" /> <mx:FormItem label="catégorie"> <mx:TextInput id="_form_categorie" text="" /> </mx:FormItem> <mx:FormItem label="nom"> <mx:TextInput id="_form_name" text="" /> </mx:FormItem> <mx:VBox> <mx:VBox id="_meta_state_box" > <meta_object:object_meta_state /> </mx:VBox> <mx:HBox> <mx:Button label="Ajouter" click="add_meta_state_box()" /> </mx:HBox> </mx:VBox> <mx:HBox width="100%" horizontalAlign="center"> <mx:Button label="Supprimer" /> <mx:Spacer /> <mx:Button label="Annuler" /> <mx:Spacer /> <mx:Button label="Sauver" click="onValid(event)"/> </mx:HBox> <mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.core.ComponentDescriptor; import mx.controls.Alert; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import forms.object.ObjectData; [Bindable] protected var obj:ObjectData=new ObjectData(); public function onValid(e:Event):void { trace("Send object data to server"); // valider le nom // si l'id n'est pas nulle affecter l'id // Si la valildation n'est pas correct appeler une fonction de correction // Valider le formulaire. //asg.getOperation("save").send(); var ob:ObjectData=new ObjectData(); ob.setName(_form_name.text); asg.getOperation("save").send(ob); } public function form_object_object_save_result(e:ResultEvent):void { trace(e.result); trace("call . form_object_object_save_result"); } public function form_object_object_get_result(e:ResultEvent):void { trace(e.result); trace("call . form_object_object_get_result"); } public function faultHandler(fault:FaultEvent):void { Alert.show(fault.fault.faultString, fault.fault.faultCode.toString()+fault.fault.faultDetail.toString()+fault.fault.faultString); } public function add_meta_state_box():void { var state:object_meta_state=new object_meta_state(); _meta_state_box.addChild(state); } ]]> </mx:Script> </mx:Form> </mx:Canvas>
Merci.
Partager