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

XSL/XSLT/XPATH XML Discussion :

[XSLT] javascript dans xsl/xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut [XSLT] javascript dans xsl/xml
    bonjour,

    J'ai une page xml/xsl.
    j'ai inclus du javascript car je ne voulais pas que toute la page soit affiché lors du chargement. je voulais que lorsque l'utilisateur clique sur un petit "plus" ou sur un petit "moins" du texte s'affiche ou se cache.

    le problème c'est que ce script s'applique dans un "for-each"... toutes les div créés ont donc le même nom ... et donc c'est n'importe quoi !!
    pour faire clair, naturellement je peux cliquer sur n'importe quel lien, c'est toujours la premier div qu'il trouve qu'il ouvre puisqu'ils s'appellent tous de la même façon.

    j'ai voulu créer un itérateur et créer les noms des div en fonction ... mais je n'y suis pas arrivé en xsl !!

    pouvez vous m'aider!

    voila le code, se sera surement plus facile a comprendre !
    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:for-each select="section">
    			<div class ="section">
    				<div class="intitule">
    					<xsl:value-of select="intitule"/><br />
    				</div>
    				<div id="langage">
    					<div class="t">
    						<xsl:value-of select="langage/t"/>&nbsp;
    					</div>
     
    					<div id="lienaffiche">
    						<a href="javascript:afficheId('groups'); cacheId('lienaffiche'); afficheId('liencache');"> 	
    						<img src="./plus.gif" style="border:none; width:1.2%;" /></a>
    					</div>
    					<div id="liencache" style="display:none;">
    						<a href="javascript:cacheId('groups'); afficheId('lienaffiche'); cacheId('liencache');">
    						<img src="./moins.jpg" style="border:none; width:1.2%;" /></a>
    					</div>
    				</div>
     
    				<div id="groups" style="display:none;"> 
    					<div id="objectif">
    						...
    					</div>
    				</div>
     
    			</div>
    		</xsl:for-each>
    	</div>

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 553
    Points : 21 612
    Points
    21 612
    Par défaut
    Ben... Construis un id différent pour chacun... Doh !

    Par exemple, dans ton XML, t'as qu'à donner des noms à chaque entrée, et construire l'id en fonction de ce nom.
    Si ça t'arrange pas, tu peux utiliser la position() du nœud en cours, ou bien son generate-id().
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    si j’utilise un for-each se n'est pas pour rien !!
    c'est parce que c'est la solution la plus optimale !!

    ceci dit je vais étudier ta proposition des generate-id() !

    merci jte dirais si j'ai réussi !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    bon j'ai réussit à appliquer les generate-id() à mon problème !
    je te remercie !

    tout fonctionne !

    toute modification du xml, tout ajout de donnée xml... se fera simplement , le xsl s'occupe de tt !

    j'ai réussi à atteindre le résultat que je voulais, merci bcp !

    Loutemilou

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut code JS
    Salut loutemilou :!

    Je cherche en gros à faire exactement comme toi, cad je voudrais que "lorsque l'utilisateur clique sur un petit "plus" ou sur un petit "moins", du texte s'affiche ou se cache".
    J'utilise aussi un xml + xsl. Mon script s'écrirait aussi dans un for-each... (ce problème là pourra surement etre réglé par ce topic !).

    Mais perso j'aimerai savoir comment as-tu fais pour les petits plus et moins? Je vois que tu as utilisé du js, comment l'as-tu ajoutré dans ton xsl? Et comment as-tu trouvé le code du js (cacheId, afficheId)?

    Ca fait beaucoup de questions ^^

    Merci d'avance !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2007, 14h08
  2. Réponses: 1
    Dernier message: 03/08/2007, 13h25
  3. [AJAX] Exécution Javascript dans XSL (FireFox)
    Par mchaz84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2007, 08h48
  4. [XSLT] Php dans XSL
    Par kivan666 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 08/07/2006, 20h28
  5. [Debutant XSLT] recursivité dans le xml ?
    Par zax-tfh dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 10/12/2005, 17h41

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