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

XMLRAD Discussion :

affichage de tableau dynamique


Sujet :

XMLRAD

  1. #1
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut affichage de tableau dynamique
    Alors voilà, je voudrais afficher un tableau.
    Déjà le contenu n'est pas entièrement dans le xml: j'ai 1 fois le texte dans mon xml et je veux l'afficher plusieurs fois.
    Jusque là il suffirait de créer un template et de l'afficher le nombre de fois necessaires.
    Mais là où ça devient vraiment coton, c'est que ce nombre de fois où je veux afficher le texte n'est pas fixe: en fonction d'un paramètre, je vais afficher 2 lignes de 3 colonnes, 3 lignes de 3 colonnes etc.
    Premier réflexe, boucle for. Heu bon ça va, je sais xml c'est pas de la programmation machin... Donc maintenant j'en suis là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:variable name="nb_lignes">15</xsl:variable>
    <xsl:variable name="i">0</xsl:variable>
    En haut de mon doc, je déclare mes variables en global parce que je ne veux pas avoir de problème avec les noeuds et tout ça (j'ai lu quelque chose à ce sujet ici )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:call-template name="boucle_etq"><xsl:with-param name="i" select="10"/></xsl:call-template>
    est l'appel de la "boucle"
    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
    <xsl:template name="boucle_etq"> 
    	<xsl:param name="i" select="0"/>
    		<xsl:if test="$i &lt; $nb_lignes"> 	
    		 <tr>
    		    <td>
    		       <xsl:value-of select="ETIQUETTE/ANO_NUM"/>
    		    </td>
    		    <td>
    		       <xsl:value-of select="ETIQUETTE/ANO_NUM"/>
    		    </td>
    			<td>
    				<xsl:value-of select="ETIQUETTE/ANO_NUM"/>
    			</td>
    		</tr>
    		<tr>
    			<td class="clBarreCode">
    				<xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/>
    			</td>
    			<td class="clBarreCode">
    				<xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/>
    			</td>
    			<td class="clBarreCode">
    				<xsl:value-of select="ETIQUETTE/ANO_NUM_TRANS"/>
    			</td>
    		</tr>
    			<xsl:call-template name="boucle_etq"> 
    				<xsl:with-param name="i" select="number($i)+1"/> 
    			</xsl:call-template> 
    			</xsl:if>
    </xsl:template>
    est le code qui me permet d'afficher à chaque fois le numéro et le numéro dans la police de code barre.
    Ok c'est bon.
    Sauf que nb_lignes je l'avais mis à 15 pour l'instant, histoire que ça fonctionne déjà ça, mais j'arrive pas à lui expliquer maintenant que nb_lignes va venir de mon xml, je lui colle un value-of ben rien du tout...
    En plsu actuellement ln_lignes vaut 15 et il fait 5 lignes... En même temps c'est ce que je voulais, puisque mon but à l'origine c'est d'avoir le nombre de texte div 3 pour savoir les lignes, mais là je ne lui ai pas demandé et ça m'étonnerait qu'il l'ait pigé tout seul, que c'est ce que je voulais... En plus si je mets 30 il me fait 20 lignes et si ce n'est pas un multiple de 3, il n'affiche rien... Comprends pas...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  2. #2
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    eh oui, le XSL ce n'est pas de la programmation impérative, mais fonctionnelle.

    donc tu fais fausse route en faisant ca.
    il faut que tu génère autant de fois ta donnée XML sur laquelle la template va matcher autant de fois que l'element est présent donc faire le nombre de ligne que tu désires.
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  3. #3
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Non ça c'est pas possible, j'ai essayé mais c'est trop monstreux comme fichier xml. En plus au niveau de la requête, vu que le nombre de lignes que je veux vient d'une autre requête, j'imagine même pas comment je devrais les imbriquer...
    Mon code fonctionne, sauf que j'en ai pas le nombre que je demande: je vois bien qu'il boucle sur lui même mais j'arrive pas à trouver la formule: il ne m'en affiche pas le double, il ne m'en affiche pas le nombre +1...

    Edit: Apparemment qd je donne nb_lignes=15, il fait 5, pour 16, 6, pour 20, 10 etc... Pourquoi fait-il nb_ligne -10?
    Je me doute bien que c'est moi qui le lui ait demandé, mais là je vois pas où c'est...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  4. #4
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par EJ
    Non ça c'est pas possible, j'ai essayé mais c'est trop monstreux comme fichier xml. En plus au niveau de la requête, vu que le nombre de lignes que je veux vient d'une autre requête, j'imagine même pas comment je devrais les imbriquer...
    C'est monstrueux comment le fichier XML ainsi généré ?
    peux-tu me décrire ce que tu fais et ce que tu veux obtenir peut etre que l'on peut trouver une solution alternative pour obtenir le meme résultat.
    ca fait des années que je fais du XSL et je n'ai jamais eu besoinde faire une boucle for !
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  5. #5
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Ben en fait, dans une première table, je récupère le nom et le prénom de l'étudiant et dans une autre, son numéro d'Anonymat en clair et en transcodé (avec une police de code barres) = ma première requête
    Dans une autre table encore, la session, l'étape et l'épreuve = ma 2ème requête requête
    Enfin dans une denrière, le nombre d'épreuves auxquelles l'étudiant doit participer = ma dernière requête

    Donc pour lier, il faudrait lier le nombre d'épreuves auxquelles le candidat doit participer avec son numéro d'anonymat, puisque c'est ce numéro que je veux afficher nombre d'épreuve +1 pour imprimer la planche d'étiquettes

    Or si la requête pour récupérer l'étudiant est assez simple, celle pour compter les épreuves est déjà assez complexe (2 select imbriqués, environ 20 lignes de condition en WHERE ), ça c'est mon premier problème, je ne suis à mon avis pas capable de les bidouiller, parce que je ne sais pas comment lui dire qu'il sélectionne autant de fois le numéro que j'ai d'épreuves (et en plus quasiment à chaque fois que j'ai bidouillé une requête, il a fallu repasser derrière moi parce que je m'étais plantée).
    D'autre part, à l'origine on m'a demandé de faire une boucle parce que le but est que le fichier xml soit le plus léger possible vu que plusieurs personnes font plusieurs requêtes sur le même serveur en même temps et qu'on veut minimiser le temps d'attente. On a fait des tests ce matin, c'est peut-être pas si significatif que ça, mais j'en reviens toujours au même problème que je ne sais pas modifier ces requêtes correctement...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  6. #6
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Argh!
    Je sors, je dis plus rien... l'andouille que je suis avait collé "10" comme valeur à "i" dans l'appel, tu m'étonnes que j'en avais 10 de moins, quelle cruche!
    Bon ok ben maintenant j'ai collé un div 3 pour avoir ma variable comme nombre de ligne et voilà, c'est super ça fonctionne!
    Oui RDM, la boucle for n'est sans doute pas la solution la plus logique dans la philosophie xml, mais c'est ce qu'on m'a demandé...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  7. #7
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    au passage le temps passé sera surtout à executer la requête SQL que de générer le document XML...
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  8. #8
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Oui c'est vrai mais bon en fait j'associe les deux au sens où lorsque ma requête est trop mal faite, il ne me génère même pas le xml (oui je t'assure, ça m'est déjà arrivé, au bout de 15 secondes il a abandonné et j'avais oublié où ça se réglait, alors j'ai optimisé, heu pardon j'ai fait optimiser ma requête... )
    Disons qu'en fait à terme il peut y avoir 6000 étudiants alors ça fait un peu monstrueux...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  9. #9
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Et sinon, RDM, merci pour ta magnifique phrase que je vais coller dans mon rapport de stage, parce que franchement ça en jette:
    G) Récursivité
    XSL n'est pas de la programmation impérative, mais fonctionnelle : les boucles for, while et repeat n’ont plus de raison d’être puisqu’il faut générer la donnée XML autant de fois que l’on souhaite afficher l’élément.
    Terrible! Merci! ;-)
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  10. #10
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    tu peux rajouter que c'est de type fonctionnelle pure se rapprochant d'Haskell
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  11. #11
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Heu... Attends je vais chercher qui est ce Haskell d'abord
    Haskell est un langage de programmation fonctionnelle
    pure basé sur la réduction de graphes
    R.Bird, Introduction to Functional Programming using Haskell,
    Prentice Hall
    Ok déjà c'est pas un mec mais un langage... J'ai l'air maligne
    C'est quoi les graphes...?
    Nan je veux bien mettre des mots pour faire classe, mais si je les comprends pas niet... ;-)
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  12. #12
    RDM
    RDM est déconnecté
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 424
    Points : 2 927
    Points
    2 927
    Par défaut
    hmmm, là ca se complique, tu entres dans le monde du fonctionnel et du lambda calcul. mais pour résumé, l'evaluation des expressions dans un langages fonctionnel pout se représenter par un arbre. L'exemple le plus parlant est l'evaluation de la suite de Fibonacci. en evaluation fonctionnelle classique on remarque que l'on calcul plsuieurs fois les memes branches. Les langages comme Haskell, construise en fait un graphe (au passage un arbre est un graphe particulier) pour eviter de recalculer des termes qui sont présents a différents niveaux dans l'arbre.

    sinon pour les graphes en eux meme: http://fr.wikipedia.org/wiki/Th%C3%A9orie_des_graphes

    ca fait parti des cours classiques d'algorithmie.
    RDM
    Tout Est Relatif
    Rubrique XMLRAD: http://xmlrad.developpez.com
    FAQ XMLRAD: http://xmlrad.developpez.com/faq/

  13. #13
    EJ
    EJ est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 49
    Points
    49
    Par défaut
    Heu... Je vais me contenter de ce que j'avais déjà mis, si tu veux bien...
    Il existe 10 catégories de gens.
    Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

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

Discussions similaires

  1. Affichage valeur tableau dynamique
    Par Dawlon dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2013, 21h38
  2. [Oracle] Affichage des données sous forme de tableau dynamique
    Par bsidy1 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/10/2008, 14h17
  3. [phpToPDF] Affichage tableau dynamique
    Par fat dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 23/05/2007, 16h19
  4. [MySQL] Comment enlever des doublons lors de l'affichage d'un tableau dynamique ?
    Par wylls dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/12/2006, 14h54
  5. Affichage javascript total ligne tableau dynamique
    Par falz222 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/08/2006, 19h17

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