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 :

[flex 2 Builder et AMFPHP]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [flex 2 Builder et AMFPHP]
    bonjour,
    apres avoir longuement tatonné, j'ai enfin réussi a installer AMFPHP sur mon serveur et à créer un mxml qui récupere la valeur d'un champ. Une fois le tout déployé, j'ai voulu acceder à ma base de donnée pour en récuperer les infos dans une grille:
    id-nom-mail
    J'ai donc une classe AS3 RemotingConnection dans un dossier sample a la racine de mon projet:
    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
     
    package samples
    {
     
    		import flash.net.NetConnection;
    	    import flash.net.ObjectEncoding;
     
    		public class RemotingConnection extends NetConnection
    		{
    				public function RemotingConnection (sURL:String)
    				{
    					objectEncoding = ObjectEncoding.AMF0;
    					if (sURL) connect (sURL);
    				}
     
    				public function AppendToGatewayUrl(s:String):void
    				{
    					//
    				}
    		}
    }
    un fichier de classe php utilisateurs.php dans le dossier amfphp/services:
    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
     
    <?php
    //Création d'une classe php qui permet de récuperer les infos de la table user
    class utilisateurs
    {
        function utilisateurs () 
        {
            // Méthode de remplissage du tableau
            $this->methodTable = array(
                "getUsers" => array(
                    "description" => "Return a list of users",
                    "access" => "remote"
                )
            );
        }
     
    //récupération des données dans la base:
    //1)connection
    //2)resquette
    //3)tableau suivant le méthode décrite dans la fonction sample
    //4)renvoi des données
        function getUsers () {
            $mysql = mysql_connect("xxx", "xxx", "xxxx") or die("erreur de conexion à la base: ".mysql_error());
     
            mysql_select_db( "user" );
     
            //return a list of all the users
            $Query = "SELECT * from user";
            $Result = mysql_query( $Query );
            while ($row = mysql_fetch_object($Result)) {
                   $ArrayOfUsers[] = $row;
            }
            return( $ArrayOfUsers );
        }
    }
    ?>
    un fichier user.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
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="absolute" creationComplete="initApplication()">
    	<mx:Script>
    		<![CDATA[
     
    			//fichier de connection:
    			import samples.RemotingConnection;
     
    			import flash.net.Responder;
                import samples.RemotingConnection;
                import flash.events.NetStatusEvent;
     
    			[Bindable]
    			public var tableauUsers:Array;
     
    			public function initApplication() : void
                {
                    RemotingConnection = new RemotingConnection ( "http://www.monsite.fr/flex2php/amfphp/gateway.php" );
     
                    RemotingConnection.call( "utilisateurs.getUsers", new Responder(onResult, onFault));
                }
     
                 public function onResult( result : Array ) : void
                {
                tableauUsers = result;
                }
     
     
                public function onFault( fault : String ) : void
                {
                    trace( fault );
                }
     
    		]]>
    	</mx:Script>
    	<mx:DataGrid x="294" y="103" width="370" height="208" dataProvider="{tableauUsers}">
    		<mx:columns>
    			<mx:DataGridColumn headerText="id" dataField="id"/>
    			<mx:DataGridColumn headerText="nom" dataField="nom"/>
    			<mx:DataGridColumn headerText="mail" dataField="mail"/>
    		</mx:columns>
    	</mx:DataGrid>
     
     
     
    </mx:Application>
    et enfin une table user crée spécialement pour l'occasion.

    Et c'est dans mon fichier user.mxml que ca se complique:
    dans ma fonction initApplication() j'ai deux erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RemotingConnection = new RemotingConnection ( "http://www.monsite.fr/flex2php/amfphp/gateway.php" );
    //affectation à la classe RemotingConnection incorrecte
    //contraine implicite d'une valeur de type sample:RemotingConnection vers un autre type sans rapport Class           
    RemotingConnection.call( "utilisateurs.getUsers", new Responder(onResult, onFault));
    quand je teste mon fichier , je vois ma grille avec ces 3 colonnes mais elles sont remplies chacune d'un tableauUsers.

    Comment regler ce problème de renvoi des données?
    Merci d'avance
    Dernière modification par Invité ; 16/05/2008 à 23h09.

  2. #2
    Invité
    Invité(e)
    Par défaut
    ouf je viens de trouver une partie de la solution:
    dans mon fichier user.mxml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"  xmlns:samples="samples.*" layout="absolute" creationComplete="initApplication()">
    //il fallait pas oublier de déclarer le xmlns:samples
    et un peu plus bas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public var gateway:RemotingConnection;//javais pas déclaré de variable
     
    			public function initApplication() : void
                {
    //j'ai changé le nom car ça n'avait pas l'air de plaire à flex...
                    gateway = new RemotingConnection ( "http://www.monsite.fr/flex2php/amfphp/gateway.php" );
     
                    gateway.call( "utilisateurs.getUsers", new Responder(onResult, onFault));
                }
    Maintenant plus d'erreur!!! chouette je teste et.... rien n'apparait dans les colonnes (eh oui j'ai bien dit une partie du probleme)
    A l'aide (avant que je ne jette cet ordi par la fenetre) !!!

    edit: quand je teste ma page php elle ne renvoit rien.. est-ce normal?
    Dernière modification par Invité ; 16/05/2008 à 23h10.

  3. #3
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    Bonjour,

    Si ta page php ne renvoie rien malgrès quelques tests (je suppose que tu as testé si ta fonction getUsers renvoyait quelque chose ou non) c'est alors normal que rien n'apparaissent dans tes colonnes et dans ce cas le problème est du coté de php (ou du coté de la base données ^^).

    Essayes de régler ton problème du coté php déjà, une fois ce problème réglé on regardera si tes colonnes se remplissent ou non

  4. #4
    Invité
    Invité(e)
    Par défaut
    merci
    maintenant ca marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Flex 4.0 et AMFPHP 1.9 pb charge serveur
    Par fxparis dans le forum Flex
    Réponses: 0
    Dernier message: 09/10/2014, 22h43
  2. [Flex3] Flex 3 Builder sous Linux
    Par Hisoka_Hunter dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 26/01/2011, 11h59
  3. Flex Builder 2 et NetBeans ?
    Par martel dans le forum NetBeans
    Réponses: 2
    Dernier message: 05/08/2009, 17h11
  4. envoie de donnée flex vers php via amfphp
    Par nintendoplayer dans le forum MXML
    Réponses: 1
    Dernier message: 18/05/2009, 10h52

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