Précédent   Forum des professionnels en informatique > Autres langages > XML/XSL et SOAP
XML/XSL et SOAP Forum d'entraide sur XML et SOAP. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2011, 10h02   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
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 :
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 :
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!
CouicCouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 14h11   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 456
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 456
Points : 2 159
Points : 2 159
Peux-tu donner le HTML généré plutôt ?
Loceka est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 14h20   #3
Invité de passage
 
Inscription : novembre 2011
Messages : 4
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 4
Points : 0
Points : 0
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
CouicCouic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 08h48   #4
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 456
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 456
Points : 2 159
Points : 2 159
Dans Firefox tu peux voir le DOM généré en utilisant Firebug.
Loceka est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web