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]passer une variable js dans une instruction xsl


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut [XSLT]passer une variable js dans une instruction xsl
    Bonjour,

    Je réalise une aide à intégrer dans un intranet. Cette aide doit être consultable avec et sans Flash Player, aussi j'ai choisi de créer un xml unique alimentant un fichier Flash et un xsl, afin de simplifier la maintenance. Tout se passe bien avec le Flash, mais j'ai un problème avec le xsl.

    Mon objectif :
    Afficher un menu avec les différentes étapes, fonctionnant comme des boutons.
    Au clic sur l'une d'elle, récupérer son id, et afficher le contenu correspondant.
    Le tout toujours dans le même page (qui se recharge, bien sur).

    Mes contraintes :
    Pas d'intégration possible dans un fichier php, aucune modification n'étant possible sur le serveur.
    Tout doit donc se passer côté client.
    Une seule fenêtre, donc pas de lien vers différentes pages spécifiques à chaque étape.

    Mon problème :
    J'arrive à transmettre l'id de l'étape (@id) cliquée via une fonction javascript (itemClic).
    Mais dans cette même fonction, je voudrais récupérer le type de l'étape correspondante.
    Hors, l'instruction marche bien, mais pas avec la variable : quelque soit l'étape cliquée, le titre est toujours celui du premier nœud.

    Jusqu'à maintenant je ne travaillais le xml qu'avec Flash, aussi la solution que j'ai trouvée n'est sans doute pas la meilleure.
    S'il existe d'autre façon de transmettre une variable en restant côté client, je suis preneur !

    Pour mieux comprendre, je vous joins ensuite les bouts essentiels du xsl et du xml, ainsi que l'affichage obtenu actuellement.

    Je vous remercie pour vos conseils.
    Bonne journée !
    lilian


    Fichier xsl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
     
    	function itemClic(id) {
    		document.write('Id : ' +id +' Titre : <xsl:value-of select="aide/etape[' +id +']/titre_etape"/>');
    	}	
    </script>
     
    <xsl:for-each select="aide/etape">
     
    	<a onClick="javascript:itemClic({@id})"><xsl:value-of select="titre_etape"/></a>
          <br />
    </xsl:for-each>
    Arborescence simplifiée du fichier xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <aide>
    	<etape id="x">
    		<titre_etape>
    		<contenu>
    		...
    Affichage actuel, exemple avec l'étape 3 cliquée :

    Id : 3 Titre : titre de l'étape 1

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    tu n'as que du xsl/xml ? Ou la transfo xml/xsl est appellé dans un autre langage ? Pense à preciser ce n'est pas du tout la même chose

    Par contre une solution très simple à ton pb ne serait-il pas de faire un case dans function itemClic(id) en fonction de l'id

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 2
    Par défaut
    pas de transformation possible côté serveur, je n'ai donc qu'une page xsl et mon document xml, sans autre langage.
    excepté le javascript que j'ai du insérer pour permettre un peu de dynamisme dans le xsl.

    problème du case : il faut que les personnes administrant l'aide n'est qu'à modifier le xml, et rien dans la page xsl.

    d'autre part, j'ai été éclairé sur mon erreur : la transformation ne s'effectuant qu'au départ, le onClic ne pouvait pas fonctionner correctement.

    je vais donc essayer en stockant tout mon contenu dans un tableau javascript au chargement de la page. pas très propre, mais je ne vois pas d'autre solution étant donné mes contraintes.

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Citation Envoyé par ounours
    ....
    problème du case : il faut que les personnes administrant l'aide n'est qu'à modifier le xml, et rien dans la page xsl.
    .....

    je vais donc essayer en stockant tout mon contenu dans un tableau javascript au chargement de la page. pas très propre, mais je ne vois pas d'autre solution étant donné mes contraintes.
    Construire un tableau dynamiquement ou un case c'est la même chose, le case est à mon avis plus rapide (surtout si il y a beaucoup de cas), c'est pourquoi je l'ai proposé

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/06/2009, 10h54
  2. [PHP-JS] Récupérer une variable JS dans une variable PHP
    Par Perceuse-Killer dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2008, 15h34
  3. Réponses: 1
    Dernier message: 20/04/2007, 09h12
  4. [PHP-JS] mettre une variable javascript dans une variable php
    Par Mounr dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2007, 09h09
  5. récupérer une variable javascript dans une variable java
    Par tx dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/07/2006, 17h55

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