Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/02/2011, 15h26   #1
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 87
Points : 39
Points : 39
Envoyer un message via MSN à steave
Par défaut peupler un combobox via httpService

bonjour je viens à vous pour un souci de combobox à remplir de manière dynamique, donc j'ai un fichier php definit comme suit
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
...
$req="Select * from service";
$res=mysql_query($req);
 
$reponse = "<services>";
while($Ser= mysql_fetch_object($res)){
	$reponse.="<service><id>".$Ser->ids."</id><libelle>".$Ser->service."</libelle></service>";
 
}
$reponse.="</services>";
...
et mon mxml
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
	xmlns="*" initialize="initializeHandler(event)">
	<mx:Script>
        <![CDATA[
 
 
            private function initializeHandler(event:Event): void{
            	listecombo.send();
            }
 
        ]]>
    </mx:Script>
    <mx:HTTPService id="listecombo" url="http://localhost/test_fx3/src/php/liste.php" useProxy="false" />
<mx:Form x="35" y="25" width="473" height="303">
<mx:VBox>
				<mx:ComboBox id="service" editable="false" dataProvider="listecombo.lastresult.services.service"/>
			</mx:VBox>
</mx:Form>
Du coup ça marche pas ais-je rater quelque chose?
cordialement
steave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 16h00   #2
Membre habitué
 
Inscription : février 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2008
Messages : 190
Points : 131
Points : 131
Ce que je vous propose c'est d'appeler une fonction si le service répond bien pour vérifier si les données sont bien chargées.
Vous pouvez ajouter cela dans le HTTPService :

Code :
result="serviceResultHandler(event)"
et de définir la fonction
Code :
1
2
3
private function serviceResultHandler(event:ResultEvent):void{
 var donnees:ArrayCollection = event.result as ArrayCollection; 
}
Est ce que la collection donnees est bien remplie
luilui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 17h08   #3
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 87
Points : 39
Points : 39
Envoyer un message via MSN à steave
Merci pour ta reponse . mais je saisie pas exactementmalgré avoir mis le "result" que devrais-je recevoir en retour un message , mais rien ne s'y passe
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
<mx:Script>
        <![CDATA[
          import mx.rpc.events.ResultEvent; 
          import mx.collections.ArrayCollection;
            /*private function send_data():void {
                userRequest.send();
            }*/
 
 
            private function initializeHandler(event:Event): void{
            	listecombo.send();
            }
            private function serviceResultHandler(event:ResultEvent):void{
                   var donnees:ArrayCollection = event.result as ArrayCollection; 
           } 
        ]]>
    </mx:Script>
    <mx:HTTPService id="listecombo" url="http://localhost/test_fx3/src/php/liste.php" useProxy="false" result="serviceResultHandler(event)"/>
dans mon combobox j'ai un dataprovider qui essaye d'atteindre les valeurs comme si c'etait un file xml
Code :
1
2
3
<mx:VBox>
				<mx:ComboBox id="service" editable="false" dataProvider="listecombo.lastresult.services.service"/>
			</mx:VBox>
Ps. en reallité dans mon php la valeur retourné n'est pas sous forme array
steave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 17h49   #4
Membre habitué
 
Inscription : février 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2008
Messages : 190
Points : 131
Points : 131
J'ai jamais utilisé un HTTPService comme cela.
Qu'est ce que sa donne avec cela ?
Code :
1
2
3
4
private function serviceResultHandler(event:ResultEvent):void{
                   var donnees:ArrayCollection = event.result as ArrayCollection; 
                   service.dataProvider = donnees;
           }
luilui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 02h04   #5
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Bonsoir

Si tu fais un log sur ton url :

Code :
http://localhost/test_fx3/src/php/liste.php
Qu'est-ce que tu obtiens comme résultat.
Est-ce que tu as bien une structure xml qui comprend les noeuds services.service ?
Au demeurant ceux qui seront sollicités par ton dataprovider :

Code :
.... dataProvider="listecombo.lastresult.services.service"/>
Voilà, déjà commencer par là, pour vérifier ce que ton fichier php te renvoie réellement.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 09h21   #6
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 87
Points : 39
Points : 39
Envoyer un message via MSN à steave
Citation:
Qu'est-ce que tu obtiens comme résultat.
Est-ce que tu as bien une structure xml qui comprend les noeuds services.service ?
Oui en lançant mon file php j'ai bien les valeurs retournées par la bd

luilui pour le code
Code :
1
2
3
4
5
 
 private function serviceResultHandler(event:ResultEvent):void{
                   var donnees:ArrayCollection = event.result as ArrayCollection; 
                   service.dataProvider = donnees;
           }
ça pas bouger marche toujours pas. Si vous avez d'autre solution suis preneur ou des tutos. Mais j'ai une question le remote de AMF est il bien comme autre solution?
steave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 09h27   #7
Membre habitué
 
Inscription : février 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2008
Messages : 190
Points : 131
Points : 131
Est ce que ces données arrive coté client ?
Si elle arrive sous forme d'un xml, je pense qu'il n'est pas possible d'utiliser un ArrayCollection.

Est ce que vous pouvez nous donner la structure de données que le fichier php retourne.
Est ce que vous pouvez faire une trace sur (event.result as XML)
luilui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 10h03   #8
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 87
Points : 39
Points : 39
Envoyer un message via MSN à steave
non non il arrive pas sous forme de xml les tag sont ignorés lors de l'affichage dans le navigateur il affiche toute les données sous forme concaténé tel un array

la structure c'est sous forme service(id, libelle). dans mon php j'ai juste eu à mettre les tags comme je l'ai indiqué plus haut..
Code :
1
2
3
4
5
6
7
 
<services>
   <service>
      <id></id>
      <libelle></libelle>
  <service>
</services>
steave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 10h09   #9
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 87
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 87
Points : 39
Points : 39
Envoyer un message via MSN à steave
non non il arrive pas sous forme de xml les tag sont ignorés lors de l'affichage dans le navigateur il affiche toute les données sous forme concaténé tel un array

la structure c'est sous forme service(id, libelle). dans mon php j'ai juste eu à mettre les tags comme je l'ai indiqué plus haut..
Code :
1
2
3
4
5
6
7
 
<services>
   <service>
      <id></id>
      <libelle></libelle>
  <service>
</services>
steave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 10h53   #10
Membre habitué
 
Inscription : février 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2008
Messages : 190
Points : 131
Points : 131
Il faut renseigner labelField en ajoutant soit : labelField="id" ou labelField="libelle" dans le tag ComboBox
luilui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 00h32   #11
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par steave Voir le message
non non il arrive pas sous forme de xml les tag sont ignorés lors de l'affichage dans le navigateur il affiche toute les données sous forme concaténé tel un array
Bonsoir
Si les tags sont ignorés, ton dataprovider ne peut pas les inventer, ou les identifier.
Comment peut-il autrement ?
A mon avis, tu devrais revoir ton script php pour qu'il puisse te renvoyer, et les tags, et les variables.
Une bonne requête simple et le tout renvoyé et formaté en xml propre.
C'est pas la faute à flex.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h54.


 
 
 
 
Partenaires

Hébergement Web