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 :

Variable Javascript dans Variable XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut Variable Javascript dans Variable XSL
    Bonjour,

    J'ai fait quelques recherches sur google et sur developpez, je voudrais savoir les différentes solutions utilisées pour le passage de variable javascript vers les variables XSL.

    Avant toutes choses, je travail sans serveur.
    Concrètement, j'ai un formulaire de recherche multi critères. Je passe les résultats en get a une autre page.
    La j'ai une fonction javascript qui me récupère les paramètres.
    J'aimerais créer la liste des produits qui corresponde à mes critères de recherches.

    Pour cela j'utilise le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:variable name="xlsid"></xsl:variable>
    <xsl:for-each select="dataroot/produit">
    				<xsl:choose>
    					<xsl:when test="prod_id=$xlsid">
    Mais voila, je ne sais pas comment remplir la variable $xlsid avec l'id passé en paramètre.

    Merci de vos réponses.
    A bientôt

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Je suppose qu'il faut construire dynamiquement le code XSL. Dans une page .NET, par exemple, ça ne pose pas de problème et ça doit être pareil en PHP.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Bonjour,
    Merci de ta réponse.
    Le problème c'est que je n'ai pas de serveur. Je travail que coté client.
    Et quand j'essaie de construire dynamiquement mon xsl coté client avec du javascript, ca fait rien.
    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
    <html>
    	<head>
    			<script type="text/javascript">
    		    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0"); 
                xslDoc.async = false; 
                xslDoc.load("acceuil.xsl"); 
     
    			//Chargement du document XML
                var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); 
                xmlDoc.async = false; 
                xmlDoc.load("mod_sigrec_essaiClinique_acceuil.xml"); 
     
    			//Transformation
                var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); 
                xslt.stylesheet = xslDoc; 
                var xslProc; 
                xslProc = xslt.createProcessor(); 
                xslProc.input = xmlDoc; 
                //xslProc.addParameter("field", field); //passage du paramètre "field"
                //xslProc.addParameter("order", order);  //passage du paramètre "order"
                xslProc.transform(); 
     
    			//Affichage du résultat
                document.body.innerHTML=xslProc.output;
     
    		</script>
    	</head>
    	<body>
    	</body>
    </html>
    Merci encore te ton attention.
    A bientôt

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Sur ces tests simples ça marche :

    JS.XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <dataroot>
    	<produit>tata</produit>
    	<produit>toto</produit>
    	<produit>titi</produit>
    </dataroot>
    JS.XSL :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    <xsl:param name="xslid"/>
     
    <xsl:template match="/dataroot">
    	<xsl:for-each select="./produit">
    		<xsl:choose>
    			<xsl:when test="string(.) = $xslid">
    				<xsl:value-of select="."/>
    			</xsl:when>
    		</xsl:choose>
    	</xsl:for-each>
    </xsl:template>
     
    </xsl:stylesheet>
    JS.HTM
    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
    <html>
    	<head>
    	<script type="text/javascript">
    	var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0"); 
                xslDoc.async = false; 
                xslDoc.load("js.xsl"); 
     
    	    //Chargement du document XML
                var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0"); 
                xmlDoc.async = false; 
                xmlDoc.load("js.xml"); 
     
    	    //Transformation
                var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); 
                xslt.stylesheet = xslDoc; 
                var xslProc; 
                xslProc = xslt.createProcessor(); 
                xslProc.input = xmlDoc; 
    	    xslProc.addParameter("xslid", "tata");
                xslProc.transform(); 
     
    	   //Affichage du résultat
    	   document.write(xslProc.output);
     
    	</script>
     
    	</head>
    	<body>
    	</body>
    </html>

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    Bonjour Krantz,
    Je te remercie beaucoup de ta réponse.
    Ca a l'air de marcher avec les fichiers que tu m'a passé.
    Je vais voir ce qu'il y a de différent avec les mieux. Je vous tiens au courant.
    En tout cas, un grand merci pour ta réponse ca me sauve presque la vie.
    A bientôt

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Points : 402
    Points
    402
    Par défaut
    J'avais fais quelques erreurs d'imbrication.
    Notamment le html se mais a l'intérieur du xsl et non le contraire.
    Et j'avais aussi oublier de transformer mon résultat en string dans le if.
    Grâce a ton code, j'ai tout résolut en un rien de temps.
    Merci encore tu m'as vraiment beaucoup fait avancer.
    A bientôt.

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

Discussions similaires

  1. Récupération d'une variable javascript dans une feuille XSL
    Par drakkar64 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 21/08/2008, 17h56
  2. [JavaScript] Noeud XSL dans variable Javascript
    Par soli.f dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/04/2007, 12h41
  3. passage d'une variable javascript dans du html
    Par the_ugly dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2006, 16h08
  4. Passer la valeur dune variable javascript à une variable xsl
    Par nramariavelo dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/12/2005, 17h27
  5. Recuperer variable Javascript dans une variable Java
    Par drizztoli dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/09/2005, 14h58

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