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

XML/XSL et SOAP Discussion :

Probleme bouton afficher/masquer avec boucle for-each


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Probleme bouton afficher/masquer avec boucle for-each
    Bonjour,
    J'ai un petit problème, je viens de commencer a faire du xsl et suis nouvelle, j'écris une feuille de style pour afficher un document xml qui contient des infos hiérarchisées:
    Ensemble de règles
    Règles
    Conditions
    Actions
    J'affiche le tout en html sauf les actions qui doivent être cachées (modulo le clic sur le bouton afficher/masquer)
    J'ai écrit en tête de mon xsl une fonction:
    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
    <head>
    <script language="JavaScript">
    <xsl:comment><![CDATA[
    function showActions(bouton, id){
    var div = document.getElementById(id);
    if(div.style.display=="none"){
    div.style.display = "block";
    bouton.innerHTML = "Masquer";
    } else {
    div.style.display = "none";
    bouton.innerHTML = "Afficher";
    }
    }
    ]]></xsl:comment>
    </script>
    </head>
    En dessous le template que je vais utiliser:
    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
    <!-- ****************** Voila le template pour l'affichage des regles, il est recursif **************** -->
    <xsl:template name="ruleDetail">
    <blockquote>
    <span>
    <font face="Arial" size="2"><b>
    <xsl:attribute name="id"><xsl:value-of select="@name"/></xsl:attribute>
    <xsl:value-of select="@name"/>
    </b></font><br/>
    </span>
    <span><font face="Arial" size="2"><u>Conditions:</u></font></span>
    <pre style="margin-top: 0; margin-bottom: 0"><font size="2"><xsl:value-of select="conditions"/></font></pre><br/>
    <!--J'utilise une variable action_id qui est sensee etre recreee par generate-id() a chaque appel du template, soit une fois par regle -->
    <xsl:variable name="actions_id" select="generate-id()"/>
    <span><font face="Arial" size="2"><u> Actions: </u></font></span>
    <!-- Paragraphe a afficher/masquer, change pour chaque regle -->
    <div id="$actions_id" style="display: none">
    <pre style="margin-top: 0; margin-bottom: 0"><font size="2"><xsl:value-of select="actions"/></font></pre>
    </div>
    <button type="button" onclick="showActions(this,'$actions_id');" style="width:80px">Afficher</button>
    <xsl:for-each select="rules/rule">
    <xsl:call-template name="ruleDetail"/>
    </xsl:for-each>
    </blockquote>
    </xsl:template>
    En résultat, à chaque fois que j'appuie sur Afficher/Masquer, j'ai droit à un déroulement pour la première règle seulement! J'ai compris en farfouillant les forums que c'est surement l'id qui est inchangée à chaque nouveau div, comment puis je "contourner" ça? J'ai essayé class mais ça ne marche pas mieux, au contraire ça me donne des erreurs sur la page. Quelqu'un pourrait m'aider sur comment faire s'il vous plait?
    Merci!

  2. #2
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Peux-tu donner le HTML généré plutôt ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Euh... je ne sais pas comment y avoir accès en fait, quand je fais sous firefox "montrer le code source de la page" on me donne le xml, et sous IE j'ai même pas accès au code source... comment je le génère le html?
    J'ai qu'un fichier xml et un fichier xslt

  4. #4
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Dans Firefox tu peux voir le DOM généré en utilisant Firebug.

Discussions similaires

  1. [XL-2007] Probleme de boucle For Each
    Par Jessyline dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/05/2009, 17h21
  2. [PERL]probleme avec boucle For
    Par snufx dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 13/02/2009, 22h20
  3. Probleme VBS et boucle For each + tableau
    Par fas3r dans le forum Windows
    Réponses: 0
    Dernier message: 26/02/2008, 03h00
  4. probleme avec boucle "for"
    Par kentaro dans le forum ActionScript 1 & ActionScript 2
    Réponses: 16
    Dernier message: 30/01/2008, 20h15
  5. Probleme boucle For Each controls
    Par Tusbar dans le forum Windows Forms
    Réponses: 21
    Dernier message: 13/09/2007, 23h56

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