IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

peupler un combobox via httpService


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    ?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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    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
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    result="serviceResultHandler(event)"
    et de définir la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    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 : 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
     
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    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
    Par défaut
    J'ai jamais utilisé un HTTPService comme cela.
    Qu'est ce que sa donne avec cela ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private function serviceResultHandler(event:ResultEvent):void{
                       var donnees:ArrayCollection = event.result as ArrayCollection; 
                       service.dataProvider = donnees;
               }

  5. #5
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Bonsoir

    Si tu fais un log sur ton url :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    .... dataProvider="listecombo.lastresult.services.service"/>
    Voilà, déjà commencer par là, pour vérifier ce que ton fichier php te renvoie réellement.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 88
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/06/2009, 10h53
  2. dataProvider d'une ComboBox via Httpservice
    Par clio671 dans le forum Flex
    Réponses: 2
    Dernier message: 27/01/2009, 15h00
  3. Difficulté d'affichage dans une comboBox via une requête
    Par moilou2 dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/07/2008, 10h44
  4. Alimentation d'un ComboBox via une requête paramètrée par un autre ComboBox
    Par Platinium_Phoenix dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 30/06/2008, 09h56
  5. Charger ComboBox via Access ?
    Par Kenshin86 dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/03/2008, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo