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

JavaScript Discussion :

Passage variable xsl en javascript


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Passage variable xsl en javascript
    Toujours le même souci, je planche depuis une semaine sans trouver de solution
    J'ai un fichier .xsl dans lequel je rajoute une API (celle de Google Book Search, récupérée sur le Web et testée)
    Je souhaite passer la valeur de la variable $element dans l'API et aucune des diverses solutions testées ne fonctionne.

    Voici le code :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    <xsl:if test="boolean(normalize-space($element/cell_data/cell_data/data))">
    <tr>
    <xsl:variable name="pos">
    <xsl:call-template name="saPosition">
    <xsl:with-param name="node" select="$element"/>
    </xsl:call-template>
    		<xsl:variable>
    			<!--<td>
    				<table >
    					<tr>-->
    						<td valign="top" width="150" align="right">
    						<span class="uportal-channel-strong">
    				<xsl:value-of select="/SearchFullBib/full_bib_data/data_response/data_response/record_data_format/record_data_format/column_labels[number($pos)]"/> :
    				</span>*
    				  </td>
    				<td align="left" id="isbgbs">  
    				<xsl:call-template name="printFixedElement">
    				<xsl:with-param name="node" select="$element"/>
    				<xsl:with-param name="suppressBullet" select="'true'"/>
    				</xsl:call-template>
    				</td>
    				<!--</tr>
    				</table>
    				</td>-->
    				</tr>
    				</xsl:if>
       <table>
    			<tr>
    				<td>
    				<script type="text/javascript">
    				var aisgbs = document.getElementById('isgbs').innerHTML ;
    				</script> 
    			<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
    			<script type="text/javascript">GBS_setLanguage('fr');</script>
                <script type="text/javascript">GBS_insertPreviewButtonPopup('aisgbs');</script>
                </td>
    		</tr>	
    		</table>
    J'ai essayé pas mal d'autres choses aussi mais ce que je veux récupérer c'est la valeur du $element qui est dans le node et ce que je récupère c'est 'aisgbs'
    Comment aller récupérer cette valeur (numérique)
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    Je ne suis pas un expert en XSL, mais je ne crois pas que le code JavaScript puisse être interprété dans ton XSL.
    En tout cas, j'avais testé ce genre de truc, mais je n'ai jamais réussi à récupérer de variables que ce soit en JavaScript ou en PHP.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Bonjour,

    Il me semble également que tu ne peux accéder au "document" depuis ta xsl... Certains processeurs XSLT sont capables d'interprêter du code javascript mais n'utilisant que des fonctions de "base" (String, Date... etc).
    Je crois qu'il est impossible donc d'accéder directement au document DOM de ta page via du javascript dans ta XSL...

    Toutefois, il est possible de passer des paramètres à ta XSL mais cela dépend également de ton processeur XSLT...

    Comment fais-tu la transformation XSL ? S'il s'agit d'un XML auquel tu appliques la XSL pour la présentation (donc gérer par le navigateur), je ne sais pas s'il est possible de transmettre des paramètres (je pense que non...).

    A+

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut reponse
    C'est bien un XML auquel s'applique une XSL

    Savez-vous s'il serait correct de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table>
    <tr>
    <td>
    <script language="javascript">
    var aisgbs = '<xsl:value-of select="$fixed106"/>';
    </script> 
    <script language="javascript"  src="http://books.google.com/books/previewlib.js"></script>
    <script language="javascript">GBS_setLanguage('fr');</script>
     <script language="javascript">GBS_insertPreviewButtonPopup('aisgbs');</script>
      </td>
    </tr>	
    </table>
    Dans cette syntaxe ?
    Vu que j'ai essayé et que ça bugge

    Ou bien est-ce ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var aisgbs = '\<xsl:value-of select=\"$fixed106\"/>'

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    S'il s'agit d'un document XML auquel est appliqué une XSL pour la présentation, il n'est pas possible d'utiliser du javascript pour le traitement XSL.

    Toutefois, dans ton cas, tu souhaites visiblement générer du javascript à partir de la transformation XSL, ce qui est possible. Tu dois toutefois utiliser la balise <xsl:text>...</xsl:text> pour que tes balises XSL soient correctement interprêtées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table>
       <tr>
          <td>
             <script language="javascript">
                <xsl:text>var aisgbs = '</xsl:text><xsl:value-of select="$fixed106"/><xsl:text>';</xsl:text>
             </script> 
             <script language="javascript" src="http://books.google.com/books/previewlib.js"></script>
             <script language="javascript">GBS_setLanguage('fr');</script>
             <script language="javascript">GBS_insertPreviewButtonPopup('aisgbs');</script>
         </td>
       </tr>	
    </table>
    Ainsi, la balise <xsl:value-of select="..."/> sera correctement interprêté par le processeur XSL.

    A+

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut bof
    C'est sûr ça ?...
    Parce que ça bugge aussi dans le fichier xml

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Hmmm, ça veut dire quoi "ça bugge aussi dans le fichier xml" ?
    Tu peux être plus précis ? Donner le code généré ? Les erreurs remontées ?

    J'ai fait un test chez moi, à savoir un fichier XML auquel j'applique une transformation XSL avec la balise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml-stylesheet type="text/xsl" href="..." ?>
    Avec le code précédemment indiqué (xsl:text), ça génère bien le bon "javascript"...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut pardon c'était pas clair
    <table>
    En fait la valeur de $element n'est pas passée dans la variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    - 
    <table> <tr><td>
    - <script language="javascript">
      <xsl:text>var aisgbs = '</xsl:text> 
      <xsl:value-of select="$element" /> 
      <xsl:text>';</xsl:text> 
      </script>
      <script language="javascript" src="http://books.google.com/books/previewlib.js" /> 
      <script language="javascript">GBS_setLanguage('fr');</script> 
      <script language="javascript">GBS_insertPreviewButtonPopup('aisgbs');</script> 
      </td>
      </tr>
      </table>
    Et l'erreur est silencieuse, je n'ai aucun message mais plus rien ne fonctionne..

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Où déclares-tu la variable $element ?

Discussions similaires

  1. variable XSL et javascript
    Par Baobab12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/07/2009, 19h44
  2. passage variable PHP par javascript depuis popup
    Par nicomax34 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/03/2009, 07h21
  3. bean:define pour passage variable dans function javascript
    Par fbuchwalder dans le forum Struts 1
    Réponses: 2
    Dernier message: 06/11/2006, 18h36
  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. [PHP-JS] passage de variable php a javascript
    Par limpins dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/07/2005, 11h54

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