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 :

problèmes de textes dynamique dynamiquement générés


Sujet :

Flash

  1. #1
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut problèmes de textes dynamique dynamiquement générés
    salut,

    J'essaie de générer des textes dynamiques qui sont supposés afficher le resultat d'une requête. Quand je vais en mode debug, il passe bien dans tout mon code et ne cause aucune erreur. Le seul problème c'est que quand l'exécution est terminée, il n'affiche rien sur l'écran.


    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
    xpos = 100;
    ypos = 76;
    for(i=0;i<this.rows;i++){
    _root.createTextField("emplastname"+i,1,xpos,ypos,120,16);	
    xpos+= 130;
    _root.createTextField("empfirstname"+i,1,xpos,ypos,120,16);	
    xpos += 130;
    _root.createTextField("email"+i,1,xpos,ypos,120,16);		
    _root["emplastname"+i].textColor=65433;
    _root["empfirstname"+i].textColor=65433;
    _root["email"+i].textColor=65433;			
    _root["emplastname"+i].text=this["emplastname"+i];
    _root["empfirstname"+i].text=this["empfirstname"+i];
    _root["empfirstname"+i].text=this["email"+i];
    xpos = 100;
    ypos += 20;
    };
    Pourtant la manière dont je génère le texte dynamique fonctionne, j'ai testé ceci en tout début de script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    i=1;
    _root.createTextField("test"+i,1,xpos,ypos,120,16);		
    _root["test"+i].textColor=65433;
    _root.["test"+i].text="Test text dynamique";
    et ça fonctionne parfaitement, je ne comprends dès lors pas pourquoi ça ne marche pas dans la boucle.

    PS: une autre chose aussi qui est fort ennuyeuse, lorsque je fais un trace(variable), il n'affiche jamais rien dans la fenêtre de sortie.

    Merci

  2. #2
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Par quel biais leur assignes-tu des données ?

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut données
    salut,

    Ben dans la boucle for, je les crée et ensuite via les instructions:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    _root["emplastname"+i].text=this["emplastname"+i]; 
    ...
    je leur affecte des données. "this["emplastname"+i]" est le résultat d'un script PHP qui retourne la variable "emplastname+i" où i est l'indice à flash.

    Je te poste le code du script PHP correspondant pour info:

    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
    <?
     
    $sql = stripslashes($_POST["sql"]);
     
     
    $conn=mysql_connect("localhost","root","stephaneey");
    mysql_select_db("flash",$conn);
    $result = mysql_query($sql) or die(mysql_error());
    $i=1;
    while ($row = mysql_fetch_assoc ($result)) {
      while (list ($key, $val) = each ($row)) {
        $r_string .= '&' . $key . $i . '=' . $val ;
      }
      $i++;
    }
     
    if(!$result) {
    print "status=There is a problem with the server, please try again";
    }
    echo "&rows=".mysql_num_rows($result);
    echo $r_string."&";
     
     
    ?>
    Merci

  4. #4
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Tu te compliques la vie, va voir dans la FAQ, il y a le moyen de récuperer des données. A toi d'adapter

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut compliqué
    salut,

    Ben non justement, j'essaye de me la faciliter. C'est gentil pour la faq mais malheureusement ça ne m'aide pas du tout, ce qui y est dit concernant les interactions avec les bd, je le savais déjà.

    dans la faq, cet exemple fonctionne lorsque tu prédéfinis ta zone de texte statiquement. Or ceci est plutôt ennuyeux lorsque tu veux afficher le résultat d'une query et que par définition, tu ne sais pas combien de records vont être retournés par la query, il est donc impossible de définir toutes les zones de textes statiquement.

    Une solution que j'ai déjà faite et qui fonctionne consiste à faire une pagination, donc tu prédéfinis par ex. des zones de textes statiques pour 5 records et tu utilises le LIMIT de mysql, et tu rajoutes des boutons de navigation pour les records. Ca, ça marche très bien.


    Mais je veux essayer de faire le tout dynamiquement, c'est à dire créer toutes ces zones de textes de manière dynamique et contenant chacune la valeur de leur champ respectif.

  6. #6
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Ok pardon je croyais que tu n'arrivais pas a entrer des données .... ok !
    Je t'avoue que ton script me parait bien !
    si je comprends bien le 'rows' est le nombre de lignes renvoyées c'est bien ça ?

    Si j'ai bien compris c'est ton
    qui ne marche pas ?

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut texte
    le rows est effectivement le nombre de lignes renvoyées. Ensuite, je fais bêtement une boucle qui lit toutes les variables renvoyées, je crée (enfin j'essaie) les zones de textes dynamiquement et je leur assigne leurs valeurs respectives.

    Je pige vraiment pas pourquoi il ne me les crée pas.

    Merci pour ton aide.

  8. #8
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Bon j'ai deux min, je fais des testgs et je te dis ce que j'aurais peut etre trouvé...

  9. #9
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut texte
    cool merci. Je continue aussi à chercher de mon côté. Malheureusement le debugger n'est pas d'une très grande aide.

  10. #10
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    C'est etonnant, moi si je mets ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    xpos = 100; 
    ypos = 76; 
    for(i=0;i<3;i++){ 
    _root.createTextField("emplastname"+i,1,xpos,ypos,120,16);    
     
    _root["emplastname"+i].textColor=65433;       
    _root["emplastname"+i].text=this["emplastname"+i];
    xpos+= 130;
    ypos += 20;
     
    };
    ça marche !

    Part contre il n'en créé que un seul ....

  11. #11
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Pourtant si j'ajoute un trace, il me donne bien les deux .....

  12. #12
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut trace
    mais moi aussi maintenant il ne m'en crée qu'un seul. Tu as mis le trace où? enfin t'as fait un trace de quoi je veux dire?


    Merci

  13. #13
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    xpos = 100; 
    ypos = 76; 
    for(i=0;i<2;i++){ 
    _root.createTextField("emplastname"+i,1,xpos,ypos,120,16);    
    _root["emplastname"+i].textColor=00000;       
    _root["emplastname"+i].text=this["emplastname"+i];
    //_root["emplastname"+i].border=true
     
    xpos+= 130;
    ypos+= 20;
    trace (this["emplastname"+i])
     
    };

  14. #14
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    C'est pas normal qu'il n'en créé qu'un .... je pige pas pourquoi, il n'y a aucune raison !

  15. #15
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    Je sais d'ou vient le problème, il vient de la profondeur qui est la même pour tous or ce n'est pas possible !

    donc :

    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
    xpos = 100; 
    ypos = 76; 
    for(i=0;i<2;i++){ 
    _root.createTextField("emplastname"+i,i,xpos,ypos,120,16);    
    xpos+= 130; 
    _root.createTextField("empfirstname"+i,i+100,xpos,ypos,120,16);    
    xpos += 130; 
    _root.createTextField("email"+i,i+200,xpos,ypos,120,16);       
    _root["emplastname"+i].textColor=65433; 
    _root["empfirstname"+i].textColor=65433; 
    _root["email"+i].textColor=65433;          
    _root["emplastname"+i].text=this["emplastname"+i]; 
    _root["empfirstname"+i].text=this["empfirstname"+i]; 
    _root["empfirstname"+i].text=this["email"+i]; 
    xpos = 100; 
    ypos += 20;
    };

  16. #16
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut trace
    ben on est deux alors parce que je pige pas non plus. C'est débile.

    En outre, quand moi je rajoute un trace, il continue à ne m'en créer qu'un.

    Je pensais aussi que trace permettait d'afficher la valeur d'une variable dans la fenêtre de sortie, chez moi ça reste toujours désespérément vide.

  17. #17
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut profondeur
    joli. Bien vu, ça marche maintenant.



    un grand merci. Sais-tu exactement ce que représente ce paramètre? car en fait j'avais mis 1 partout car je ne sais pas exactement ce que ça représente justement.

    En tous cas, chapeau.

  18. #18
    Rédacteur
    Avatar de BrYs
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 014
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 014
    Points : 3 522
    Points
    3 522
    Par défaut
    merci.

    La profondeur est un concept un peu compliqué, disons que c'est une couche sur laquelle tu vas faire apparaitre ton texte (très difficile a expliqué) mais cette couche est unique, ça marche également avec duplicateMovieClip ....

    En gros si tu mets 1, il n'y aura qu'une seule couche de créée et donc qu'un élément affiché !

    Désolé si mes explications sont confuses, c'est pas simple a expliquer !

  19. #19
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut profondeur
    ok pas grave. en tous cas ça marche et c'est le principal. Je vais devoir m'attaquer aux scroll maintenant car si j'ai plus de données que le contenu d'une page, va falloir scroller.

    Merci.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/11/2008, 14h33
  2. [MySQL] Problème de liste déroulante dynamique
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 03/03/2006, 16h38
  3. Problème avec les libraires dynamiques
    Par Harzoglups dans le forum C
    Réponses: 3
    Dernier message: 17/01/2006, 15h21
  4. Problème avec la RTL dynamique
    Par lamojuli dans le forum C++Builder
    Réponses: 5
    Dernier message: 03/11/2004, 14h45
  5. Réponses: 5
    Dernier message: 12/07/2004, 21h00

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