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

Flash Discussion :

Datagrid > pb affichage des données


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut Datagrid > pb affichage des données
    salut tous,

    je suis entrain de faire un site permettant de faire un parcours de jeux chronométré. A la fin du parcours je voudrais proposer l'enregistrement du temps général. Pour cela j'utilise le composant DataGrid...

    Mon pb est le suivant : lorsque je lance mon swf via "ctrl+entrée" tout marche bien, il m'affiche toutes les entrées de la base et l'enregistrement d'une nouvelle entrée est possible via mon interface flash. Or, lorsque j'inclue tout ça dans mon site, mon dataGrid est desespérément vide, il ne m'affiche rien du tout... pourtant j'ai rien changé au code...
    Auriez-vous une idée?

    ps : je peux vous mettre mon code si vous voulez mais ça risque d'être long...
    Pour faire tout ça je me suis appuyé sur le super tutoriel présent sur ce site

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Lut,

    a mon avis ça doit etre la recuperation des données qui marche pas, et non la dataGrid.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut
    salut mec,

    Y a t'il quelque chose à changer lorsqu'on se situe dans un site et non dans un fichier autonome?
    Pour moi, le swf lancé de façon autonome marche sans pb...
    Je mets mon code... je sais que c'est très long mais comme je ne sais absoluement pas d'où vient le pb...

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    // Création dun objet LoadVar pour les requêtes de type "SELECT"
    var select_lv:LoadVars = new LoadVars();
    // Création dun objet LoadVar pour les requêtes de type "INSERT"
    var insert_lv:LoadVars = new LoadVars();
    //Tableau permettant de stocker les différents messages d'erreur
    var errorMsgs:Array = [
    	"",		
    	"Connexion au serveur impossible",
    	"Impossible de se connecter à la base",
    	"Requête erronée"];
     
    // Création d'une variable de type "String" pour le chemin d'accès au script PHP
    var filepath:String;
     
    // Création d'un tableau qui fera office de dataProvider pour le DataGrid
    var scoreInfo:Array = [];
     
    // Création d'un écouteur pour les clic sur les entêtes du datagrid permettant le tri des colones
    var headerListener:Object = {};
    headerListener.headerRelease = function(event:Object) {
    	switch (event.columnIndex) {
    		case 0:
    			if (temps_dg.getColumnAt(0).sortedUp) {
    				temps_dg.sortItemsBy(temps_dg.columnNames[0], Array.CASEINSENSITIVE | Array.DESCENDING);
    			} else {
    				temps_dg.sortItemsBy(temps_dg.columnNames[0], Array.CASEINSENSITIVE);
    			}
    			temps_dg.getColumnAt(0).sortedUp = !temps_dg.getColumnAt(0).sortedUp;
    			break;
    		case 1:
    			if (temps_dg.getColumnAt(1).sortedUp) {
    				temps_dg.sortItemsBy(temps_dg.columnNames[1], Array.CASEINSENSITIVE | Array.DESCENDING);
    			} else {
    				temps_dg.sortItemsBy(temps_dg.columnNames[1], Array.CASEINSENSITIVE);
    			}
    			temps_dg.getColumnAt(1).sortedUp = !temps_dg.getColumnAt(1).sortedUp;
    			break;
    		case 2:
    			if (temps_dg.getColumnAt(2).sortedUp) {
    				temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC | Array.DESCENDING);
    			} else {
    				temps_dg.sortItemsBy(temps_dg.columnNames[2], Array.NUMERIC);
    			}
    			temps_dg.getColumnAt(2).sortedUp = !temps_dg.getColumnAt(2).sortedUp;
    			break;
    	}
    }
     
    // Fonction permettant de mettre un 0 devant les chiffres seuls ("1" deviendra "01")
    function zerofill(n:Number):String {
    	if (n<10) return '0' + n.toString();
    	else return n.toString();
    }
    //Chemin absolu vers le script PHP
    if (_url.indexOf("http") != 0) filepath = "http://localhost/wits_project/wits_project/jeux_flash/menu_jeux/";
    //Chemin relatif
    else filepath = "../menu_jeux/";
     
    // limit fields to max characters allowed by database
    prenom_ti.maxChars = 50;
    nom_ti.maxChars = 50;
     
    // put in some default values
    temps_ti.text = 100;
    date_ti.text = today.getFullYear() + '-' + zerofill(today.getMonth()+1) + '-' + zerofill(today.getDate());
     
    select_lv.onLoad = function(ok:Boolean) {
    	if (ok) {
    		if (this.errorcode=="0") {
    			for (var i:Number=0; i < this.n; i++) {
    				scoreInfo.push(
    					{record:this["id"+i],
    					 prenom:this["prenom"+i],
    					 nom:this["nom"+i],
    					 temps:Number(this["temps"+i])
    					});
    			}
                // On affiche uniquement le prenom, le nom et le temps (pas l'id)
    			temps_dg.columnNames = ["prenom", "nom", "temps"];
    			// Formatage colone "Prénom"
    			temps_dg.getColumnAt(0).width = 200;
    			temps_dg.getColumnAt(0).sortedUp = false;
    			temps_dg.getColumnAt(0).headerText = "Prenom";
    			// Formatage colone "Nom"
    			temps_dg.getColumnAt(0).width = 200;
    			temps_dg.getColumnAt(0).sortedUp = false;
    			temps_dg.getColumnAt(0).headerText = "Nom";
    			// Formatage colone "Nom"
    			temps_dg.getColumnAt(2).width = 160;
    			temps_dg.getColumnAt(2).headerText = "Temps";
     
    			// Création du DataProvider
    			temps_dg.dataProvider = scoreInfo;
    			// Ajout de l'écouteur pour le clic sur l'entête des colones
    			temps_dg.addEventListener("headerRelease", headerListener);
    			msg_ta.text = "Vous pouvez enregistrer votre temps";
    		} else {
    			// On affiche le code de l'erreur
    			msg_ta.text = errorMsgs[Number(this.errorcode)];
    			// Si c'est une erreur de requête SQL, on affiche le type d'erreur
    			if (this.errorcode == "3") msg_ta.text += ": " + this.msg;
    		}
    	} else {
    		// Si le chargement ne s'est pas fait on affiche un message d'erreur
    		msg_ta.text = "Impossible de se connecter à la base";
    	}
    }
    msg_ta.text = "Chargement des temps...";
    select_lv.sendAndLoad(filepath + "getscore.php", select_lv, "GET");
     
    // Fonction s'executant après l'appel au script "insertscore.php"
    // Elle retourne plusieurs controles, msg (erreur SQL), id (de la plupart des enregistrements)
    insert_lv.onLoad = function(ok:Boolean) {
       if (ok) {
    	   if (this.errorcode == "0") {
              // Mise à jour du DataProvider pour mettre à jour le dataGrid
              scoreInfo.addItem(
                 {record:this.id,
                  prenom:prenom_ti.text,
    			  nom:nom_ti.text,
                  temps:Number(temps_ti.text)
                 });
              // Initialisation des champs
              prenom_ti.text = '';
    		  nom_ti.text = '';
              temps_ti.text = 100;
              msg_ta.text = "Le temps a bien été ajouté";
          } else {
             // On affiche le code de l'erreur
             msg_ta.text = errorMsgs[Number(this.errorcode)];
             // Si c'est une erreur de requête SQL, on affiche le type d'erreur
             if (this.errorcode == "3") msg_ta.text += ": " + this.msg;
    	  }
       } else {
          // Si le chargement ne s'est pas fait on affiche un message d'erreur
          msg_ta.text = "Enregistrement impossible";
       }
    };
     
    function insertRecord() {
       // Controle au niveau du champs "prénom"
       if (prenom_ti.text == '') {
          msg_ta.text = "Tu dois entrer ton prénom !";
       } else {
    	  //On envoi les données au script PHP
          insert_lv.prenom = prenom_ti.text;
          insert_lv.nom = nom_ti.text;
          insert_lv.temps = temps_ti.text;
          insert_lv.sendAndLoad(filepath + "insertscore.php", insert_lv, "GET")
       }
    }
     
    add_btn.addEventListener("click", insertRecord);

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut
    Bon,
    alors, après remaniements, j'arrive finalement à un truc assez "bizare"...

    En fait, mon swf lancé de façon autonome > tjrs aucun souci pour le datagrid

    MAIS, chargé dans un swf principal, j'obtiens finalement un dataGrid vide mais je peux desormais ajouter nom,prenom,et temps en appuyant sur mon composant "button".

    Mes nouvelles entrées apparaissent dans le datagrid... Cependant, lorsque je relance le site (F5) et que je reviens sur la page des classements, le Datagrid est encore vide! Mais j'ai vérifié et l'ajout des entrées a bien été fait dans ma base de données. Je travail pour le moment en local sur EasyPHP...

    C'est donc un pb d'affichage des données de la base vers le datagrid...

    Une idée les zamis?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Par défaut
    Bon c'est bon les zamis... alors je ne sais pas trop pourquoi mais lorsque je change la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     insert_lv.sendAndLoad(filepath + "insertscore.php", insert_lv, "GET")
    par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     insert_lv.sendAndLoad("http://localhost/wits_project/wits_project/jeux_flash/menu_jeux/insertscore.php", insert_lv, "GET")
    et idem pour ces 2 là, alors ça marche....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert_lv.sendAndLoad("http://localhost/wits_project/wits_project/jeux_flash/menu_jeux/getscore.php", insert_lv, "GET")
     insert_lv.sendAndLoad(filepath +"getscore.php", insert_lv, "GET")
    Bizare... bizare car ça marchait très bien lorsque mon fichier n'étais pas inclu dans son chargeur...

    Bref, Mon pb est résolu !

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

Discussions similaires

  1. Problème d'affichage des données d'un dataGrid
    Par loic20h28 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/08/2008, 15h39
  2. Affichages des données d'un datagrid
    Par bruce207 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/01/2008, 18h10
  3. Réponses: 3
    Dernier message: 10/12/2007, 22h48
  4. [C#] Affichage des données d'une base de données à travers un Datagrid
    Par Me,Myself and I dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/02/2007, 16h38
  5. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07

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