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 :

Problème au niveau de ma TileList


Sujet :

Flex

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut Problème au niveau de ma TileList
    salut les mecs

    J'ai un petit souci dans FLEX 3, que je commence à peine à developper avec.
    J'aimerai depuis une base de données afficher mes donnés dans une liste (<mx:TileList>) J'arrive à connecter la base de données avec mon fichier mxml, mais au lieu d'avoir le nom de l'élément dans la base de données j'ai ça [object]
    mon code est le suivant:

    Mon fichier 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
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="rest_service.send()" >
     
    <mx:HTTPService id="rest_service" url="http://serveur/espace_stagiaires/2007/othmane_abisourour/Flex/flex1/rest.php"/>
     
    <mx:TileList id="tlist0"  left="94" top="55"
        height="278" width="351" 
        fontSize="16" fontStyle="bold"
        columnCount="4" rowCount="4" 
        direction="horizontal" 
        dataProvider="{rest_service.lastResult.people.person}" 
        allowMultipleSelection="true" 
        offscreenExtraRowsOrColumns="4" 
    />
     
    </mx:Application>
    Mon fichier php
    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
     
    <?php
     
    $MySQLConnection = mysql_connect( "localhost", "root", "" );
    //connecting and picking DB
     
    mysql_select_db("flex1");
     
    //making the query from table contactos
    $Query = "SELECT * from contacts";
    $Result = mysql_query( $Query );
     
     
    /* fetching data and output as xml */
    print "<people>\n";
    while( $Row = mysql_fetch_object( $Result ) )
    {
    print "<person><id>".$Row->id."</id></person>\n";
    }
    print "</people>";
    ?>
    Je vous prie de bien vouloir me donner un coup de main, je serai très reconnaissant.

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    ok c'est bon j'ai pu régler ce problème en ajoutant .id, qui fait référence au id dans le fichier xml, dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataProvider="{rest_service.lastResult.people.person.id}"
    et je récupére effectivement mon id, mais juste celui du premier enregistrement.. Donc il faut faire une boucle pour boucler sur les éléments dans la base de données, mais je ne sais pas comment procédé, avez vous une idée??.. Sinon toutes autres solutions ou suggestions sont les bienvenus

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Par défaut
    me semble que j'ai vu un tuto qui parle de ca quelque part... faut que je cherche.

    mais t'y est presque là. regarde sur ce site y a tout ce qu'il te faut :

    http://www.adobe.com/devnet/flex/qui...t/httpservice/

    (anglais)

    si tu as encore des problèmes, reviens ici

  4. #4
    Membre éprouvé Avatar de greatalain
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 124
    Par défaut
    en faite il ne faut pas que tu ajoute .id mais .* et dans ton tilelist spécifié @id comme labelField

    sinon tu peux passer par un itemRenderer et et il te suffira pour récupérer tes éléments d'affecter data.id a un label par exemple

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    Bonsoir les mecs et désolé pour le retard.

    Merci greatalain j'avais oublié la notion de labelField et maintenant ça marche, c'est juste que j'ai un autre nouveau problème J'ai un combobox dans lequel je récupère les données depuis la base de données, je veux une fois je choisi une donnée dans mon combobox m'affiche les éléments appropriés selon le choix effectué dans ma tilelist.. J'espère avoir été assez clair.

    Merci

    N.B: j'utilise AMFPHP

  6. #6
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    je ne sais pas si j'ai bien compris, mais si tu veux savoir quand un changement est fait sur la combobox, tu peux écouter l'evenement "change" et dans ton handler tu gères ce que tu veux(appelle a ton webservice ...)

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    Merci Jim_Nastiq mais s'il te plait est ce que tu peux m'en dire plus??

  8. #8
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    plus sur quoi? si il te faut un exemple de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    private function init():void{
         idDeTaComboBox.addEventListener(ListEvent.CHANGE, comboBox_changeHandler);
    }
     
    private function comboBox_changeHandler(e:Event):void{
        trace("l'utilisateur a sélectionné: "+idDeTaComboBox.selectedItem);
    }
    dans la méthode comboBox_changeHandler à toi d'ajouter la mécanique que tu souhaites à savoir modifier le contenu de ta TileList

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    Merci Jim_Nastiq, en utilisant selectItem je récupère bien entendu la donnée choisie dans le combobox mais ce que je veux exactement c'est affiché les éléments depuis ma base de données qui ont un Id=Id en court (càd celui de l'élément séléctionné depuis le combobox) dans le but de les afficher dans ma tileList.. Est-ce que vous aurez une idée par hasard??

    Merci encore une fois

  10. #10
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Et bien tu fais comme tu as fais précédemment pour récupérer tes infos dans ta base, il n'y a que la requête SQL qui va changer(elle intégrera le choix de la combo) et tu modifies le dataprovider de ta tileList avec le résultat de ton HTTPService

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    Citation Envoyé par Jim_Nastiq Voir le message
    Et bien tu fais comme tu as fais précédemment pour récupérer tes infos dans ta base, il n'y a que la requête SQL qui va changer(elle intégrera le choix de la combo) et tu modifies le dataprovider de ta tileList avec le résultat de ton HTTPService
    Je confirme évidemment ce que tu (Jim) viens de dire. J'ajouterais juste que si la liste dans la BDD n'est pas trop grande et que l'utilisateur est susceptible de changer fréquemment le critère de filtrage, il peut être intéressant de faire le filtrage en question strictement en local (pour minimiser la charge du serveur).

    Pierre.

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 233
    Par défaut
    Je vous suis bien les gas, mais je ne sais pas comment procédé sachant que j'utilise amfphp et que chacune de mes requêtes se trouve dans une fonction..
    Voilà un bout de code de mon fichier contenant les requetes:
    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
     
    <?
    class ProductService 
    {	var $dbh;
     	public function __construct() 
    	{	$this->dbh = mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error());
     		mysql_select_db ("ProjectFinder");
    	}
    	function logement() 
    	{	$Id=1;
    		return mysql_query("SELECT fr,Id,RefId FROM cms WHERE RefId=".$Id);
    	}
    	function business() 
    	{	$Id=5;
    		return mysql_query("SELECT fr,Id,RefId FROM cms WHERE Id=".$Id);
    	}
    }
    ?>
    Alors comment pourrais-je faire appelle à ma fonction dans ma TileList en suivant le choix du combobox?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Par défaut
    Citation Envoyé par namstou3 Voir le message
    Je vous suis bien les gas, mais je ne sais pas comment procédé sachant que j'utilise amfphp et que chacune de mes requêtes se trouve dans une fonction..
    Voilà un bout de code de mon fichier contenant les requetes:
    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
     
    <?
    class ProductService 
    {	var $dbh;
     	public function __construct() 
    	{	$this->dbh = mysql_connect ("localhost", "root", "") or die ('I cannot connect to the database because: ' . mysql_error());
     		mysql_select_db ("ProjectFinder");
    	}
    	function logement() 
    	{	$Id=1;
    		return mysql_query("SELECT fr,Id,RefId FROM cms WHERE RefId=".$Id);
    	}
    	function business() 
    	{	$Id=5;
    		return mysql_query("SELECT fr,Id,RefId FROM cms WHERE Id=".$Id);
    	}
    }
    ?>
    Alors comment pourrais-je faire appelle à ma fonction dans ma TileList en suivant le choix du combobox?
    Rebonjour,

    Je n'ai jamais vraiment utilisé flex avec php côté serveur donc ne considère pas ça comme un avis d'expert

    Il faut que d'une manière ou d'une autre, lors de ta requête au serveur, tu puisses passer un paramètre dans l'url pour pouvoir l'utiliser dans ta requête SQL. Je ne connais pas bien php, mais j'imagine qu'il va te falloir utiliser une api quelconque pour te prémunir des injections de SQL via le paramètre en question (myItemName = "1 or true; ..."). Ca dépend évidemment de la criticité de ce que tu développes.

    [[Quel type d'objet côté flex utilises-tu pour te connecter à ton serveur ?]]
    Désolé, je viens de relire ton premier post. Il faut donc que tu passes un paramètre dans ton url ("....?myParam=).

    Pierre.

Discussions similaires

  1. [UBUNTU] Problème au niveau du partitionnement
    Par Louis-Guillaume Morand dans le forum Ubuntu
    Réponses: 19
    Dernier message: 19/07/2006, 18h05
  2. [CSS] Problème au niveau de la résolution
    Par shukin dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 28/10/2005, 13h29
  3. [PPC][C#][SQL2000] Problème au niveau de donné controlé
    Par Roach dans le forum Windows Forms
    Réponses: 16
    Dernier message: 21/09/2005, 22h08
  4. problème au niveau de restore database
    Par Redouane dans le forum Administration
    Réponses: 2
    Dernier message: 07/09/2005, 11h49
  5. [DNS MX]Avec DynDNS.org, problème au niveau du MX
    Par Swoög dans le forum Développement
    Réponses: 9
    Dernier message: 24/08/2004, 22h00

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