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 :

Probleme mise a jour ID objet après insertion en BDD en AS3/FLEX


Sujet :

Flex

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Probleme mise a jour ID objet après insertion en BDD en AS3/FLEX
    Bonjour,

    Petit soucis pour actualisé l'identifiant (id) de mon objet "Voiture" après insertion de l'objet en base.

    Mon Alerte affichant l'id de voiture (idVoiture) dans le fichier "VoitureAS3.as"
    var idVoiture:String = String(obj_voiture.id);
    Alert.show('Après ajout : ' + idVoiture);

    Affiche 0 au lieu de la valeur de l'identifiant ajouter.

    IHM :



    Code SQL Table Voiture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE DATABASE `testvoiture` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
     
    CREATE TABLE `testvoiture`.`voiture` (
    `id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `vitesse` INT( 3 ) NOT NULL ,
    `couleur` VARCHAR( 15 ) NOT NULL
    ) ENGINE = MYISAM ;
    Code de la classe PHP (pour amfphp) :

    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
     
    <?php
    class ServiceVoiture
    {
            protected $serveur = 'localhost';
            protected $utilisateur = 'root';
            protected $motDePasse = 'mdproot';
            protected $baseDeDonnees = 'testvoiture';
            protected $connexion = null;
            
            /**
             * Liste des services
             */
            public function __construct()
            {
            }
            
            protected function connect()
            {
                    $this->connexion = mysql_connect($this->serveur, $this->utilisateur, $this->motDePasse);
                    $selectDB = mysql_select_db($this->baseDeDonnees,$this->connexion);
            }
            
            protected function disconnect()
            {
                    if($this->connexion != null) 
                    {
                            mysql_close($this->connexion);
                    }
            }
            
            /**
             * Service qui permet d'obtenir la liste des voitures
             * 
             * @return array Tabeau d'objet
             */
            public function serviceListerVoitures()
            {
                    //Connexion à la base de données
                    $this->connect();
                    
                    //Requête
                    $requete = 'SELECT * FROM voiture';
                    
                    //Stockage du résultat
                    $resultat = mysql_query($requete);
                    
                    //Alimentation d'un tableau avec la liste des voitures
                    while($voiture = mysql_fetch_object($resultat))
                    {
                            $tableauVoitures[] = $voiture;
                    }
                    
                    //Déconexion de la base de donnée
                    $this->disconnect();
                    
                    //Envoi du tableau
                    return $tableauVoitures;
            }
            
            /**
             * Service permettant d'ajouter une nouvelle voiture
             * 
             * @param $vitesse      int Vitesse de la voiture
             * @param $couleur  String Coueur de la voiture
             * @return int Identifiant de la voiture ajoutée
             */
            public function serviceAjoutVoiture($vitesse, $couleur)
            {               
                    //Connexion à la base de données
                    $this->connect();
                    
                    //Requête SQL
                    $requete = "INSERT INTO voiture (vitesse, couleur) VALUES ($vitesse, '$couleur')";                              
     
                    
                    //Stockage du résultat
                    $resultat = mysql_query($requete);              
                    
                    $lastID = mysql_insert_id();
                    
                    //Déconexion de la base de donnée
                    $this->disconnect();
                    
                    //Envoi de la réponse
                    return $lastID;
            }               
            
    }
     
    ?>
    Code fichier Voiture.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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     
    	<mx:Script source="VoitureAS3.as"> </mx:Script>
     
    	<mx:Canvas label="cv_voiture" width="100%" height="100%" creationComplete="listerVoitures();">
     
    		<mx:DataGrid id="dg_voitures" x="10" y="10" height="200" dataProvider="{tableauVoitures}" >
    			<mx:columns>
    				<mx:DataGridColumn headerText="Id" dataField="id" width="70"/>
    				<mx:DataGridColumn headerText="Vitesse" dataField="vitesse" width="70"/>
    				<mx:DataGridColumn headerText="Couleur" dataField="couleur" width="100"/>
    			</mx:columns>
    		</mx:DataGrid>
    		<mx:Panel x="260" y="10" width="305" height="200" layout="absolute" title="Nouvelle Voiture" id="pn_voiture">
    			<mx:Form x="10" y="10" width="265" height="87">
    				<mx:FormItem label="Vitesse :" required="true">
    					<mx:TextInput id="txt_vitesse"/>
    				</mx:FormItem>
    				<mx:FormItem label="Couleur" required="true">
    					<mx:TextInput id="txt_couleur"/>
    				</mx:FormItem>
    			</mx:Form>
    			<mx:Button x="99" y="105" label="Ajouter" id="btn_ajouter" click="ajouterVoiture()"/>
    		</mx:Panel>
     
    	</mx:Canvas>
     
    </mx:Application>
    Code de la classe Voiture Action Script 3 (Voiture.as) :

    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
     
    package com.exemple
    {
    	import flash.events.Event;
    	import flash.events.EventDispatcher;
     
    	import mx.controls.Alert;
    	import mx.rpc.events.FaultEvent;
    	import mx.rpc.events.ResultEvent;
    	import mx.rpc.remoting.mxml.RemoteObject;
     
    	public class Voiture extends EventDispatcher
    	{
    		private var _id:int;
    		private var _vitesse:int;
    		private var _couleur:String;
     
    		public function Voiture(p_id:int, p_vitesse:int, p_couleur:String)
    		{
    			_id = p_id;
    			_vitesse = p_vitesse;
    			_couleur = p_couleur;
    		}
     
    		[Bindable("monID")]
    		public function get id():int{
    			return _id;
    		}
     
    		public function set id(param:int):void
    		{
    			_id = param;
    			dispatchEvent(new Event("monID"));
    		}
     
    		public function get vitesse():int{
    			return _vitesse;
    		}
     
    		public function set vitesse(param:int):void
    		{
    			_vitesse = param;
    		}
     
    		public function get couleur():String
    		{
    			return _couleur;
    		}
     
    		public function set couleur(param:String):void
    		{
    			_couleur = param;
    		}
     
     
    		public function ajouter(param:String):void
    		{
    			var service:RemoteObject =  new RemoteObject();
    			service.endpoint = param;
    			service.showBusyCursor = true;
    			service.destination = "amfphp";
    			service.source = "ServiceVoiture";
     
    			// Récupère l'id de la voiture inséré
    			service.serviceAjoutVoiture.addEventListener("result",resultatOKAjoutVoiture);
    			service.serviceAjoutVoiture.addEventListener("fault",resultatKOAjoutVoiture);
    			service.serviceAjoutVoiture(_vitesse, _couleur);
    		}
     
    		public function resultatOKAjoutVoiture(e:ResultEvent):void
    		{		
    			id = int(e.result);
    			Alert.show("Dans classe Voiture : " + String(id));
    		}
     
    		public function resultatKOAjoutVoiture(e:FaultEvent):void
    		{
    			Alert.show(e.fault.faultString, 'Error');
    		}		
     
     
    	}
    }
    Code Action Script 3 du fichier VoitureAS3.as :

    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
     
    import com.exemple.Voiture;
    import mx.controls.Alert;
    import mx.rpc.events.FaultEvent;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.remoting.mxml.RemoteObject;
     
    /**************************************************
     * URL de AMFPHP
     **************************************************/
     
    public var URL:String = "http://localhost/amfphp/gateway.php";
     
     
    /**************************************************
     * Appel du service de listing des voitures
     **************************************************/
     
    [Bindable]
    public var tableauVoitures:Array;
     
    public function listerVoitures():void
    {
    	var service:RemoteObject = new RemoteObject();
    	service.endpoint = URL;
    	service.showBusyCursor = true;
    	service.destination = "amfphp";
    	service.source = "ServiceVoiture";
    	service.serviceListerVoitures.addEventListener("result",resultatOKListerVoiture);
    	service.serviceListerVoitures.addEventListener("fault",resultatKOListerVoiture);
    	service.serviceListerVoitures();
    }
     
    public function resultatOKListerVoiture(e:ResultEvent):void
    {
    	tableauVoitures = e.result as Array;
    }
     
    public function resultatKOListerVoiture(e:FaultEvent):void
    {
    	Alert.show(e.fault.faultString, 'Error');
    }
     
     
    /**************************************************
     * Ajout d'une voiture
     **************************************************/
     
    public function ajouterVoiture():void
    {
    	var id:int = 0;
    	var vitesse:int = int(txt_vitesse.text);
    	var couleur:String = txt_couleur.text;
     
    	//Instanciation de la classe Voiture
    	var obj_voiture:Voiture = new Voiture(id, vitesse, couleur);
     
    	//Appel de la méthode d'ajout
    	obj_voiture.ajouter(URL);
     
            //Afficher la valeur de l'identifiant de l'objet voiture ajouter.
    	var idVoiture:String = String(obj_voiture.id);
    	Alert.show('Après ajout : ' + idVoiture);
     
    	//Mise à jour du tableau des voitures
    	listerVoitures();
    }
    Pour les sources : Voiture.zip

    Merci d'avance.
    Dernière modification par Invité ; 24/08/2009 à 22h00.

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

Discussions similaires

  1. pb de mise à jour de somme apres insertion
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2010, 07h31
  2. probleme mise a jour des paquets
    Par raphsimo dans le forum Debian
    Réponses: 1
    Dernier message: 10/02/2009, 00h27
  3. [AJAX] Mise a jour d'un div pendant l'execution
    Par jinpol dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/08/2007, 14h31
  4. [CKEditor] Probleme pour afficher le code html apres insertion dans bdd
    Par Pepito2030 dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 28/12/2006, 21h52
  5. Problème mise à jour SUDO avec apt
    Par byloute dans le forum Debian
    Réponses: 6
    Dernier message: 27/10/2005, 09h14

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