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 :

Problème pour positionner une liste déroulante


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Points : 29
    Points
    29
    Par défaut Problème pour positionner une liste déroulante
    Bonjour,

    je récupère une liste de Directions, que je sors en XML comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <DIRECTIONS>
    	<DIRECTION libelle="Direction A">A1</DIRECTION> 
    	<DIRECTION libelle="Direction B">B2</DIRECTION> 
    	<DIRECTION libelle="Direction C">C3</DIRECTION> 
    	<DIRECTION libelle="Direction D" selection="selected">D4</DIRECTION> 
    </DIRECTIONS>
    l'attribut "selection" devrait me servir à avoir quelle est la direction de l'utilisateur connecté et donc à la sélectionner dans la liste déroulante XSL, qui est construite comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:for-each select="DIRECTION">
    				<xsl:element name="option">
    					<xsl:attribute name="selected"><xsl:value-of select="@selection"/></xsl:attribute>
    					<xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute>					
    					<xsl:value-of select="@libelle"/>
    				</xsl:element>
    			</xsl:for-each>
    seulement ça ne marche pas, je récupère bien la valeur de l'attribut "selection" si je l'affiche, mais ça ne sélectionne pas la ligne correspondante dans la liste déroulante
    j'ai essayé aussi en mettant "true" comme valeur

    est-ce que quelqu'un aurait une piste ?

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Zou !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <xsl:for-each select="DIRECTION"> 
      <option value="{.}">
        <xsl:if test="@selection and @selected = 'selected'"> 
          <xsl:attribute name="selected" />
        </xsl:if>
        <xsl:value-of select="@libelle"/>
      </option>
    </xsl:for-each>
    Ca devrait etre bon avec ca !

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    déjà, il faut préciser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="html"/>
    Ensuite, il faut que l'attribut selected ne soit reporté dans option que si l'attribut est effectivement présent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      <xsl:for-each select="DIRECTION"> 
        <xsl:element name="option"> 
          <xsl:if test="@selection">
            <xsl:attribute name="selected">
              <xsl:value-of select="@selection"/>
            </xsl:attribute>
          </xsl:if>
          <xsl:attribute name="value">
            <xsl:value-of select="."/>
          </xsl:attribute>                
           <xsl:value-of select="@libelle"/> 
        </xsl:element> 
      </xsl:for-each>
    Ca marche avec MSXML (pas testé avec Xalan)

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 30
    Points : 29
    Points
    29
    Par défaut
    effectivement ça marche beaucoup mieux avec le if, même sans mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:output method="html"/>
    merci beaucoup

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

Discussions similaires

  1. [XL-2010] Problème pour renseigner une liste déroulante avec 5 colonnes
    Par juguy dans le forum Excel
    Réponses: 4
    Dernier message: 19/05/2015, 12h25
  2. problème pour alimenter une liste
    Par mawelle dans le forum IHM
    Réponses: 2
    Dernier message: 31/03/2008, 11h30
  3. probléme pour positionner une infobulle
    Par stars333 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/06/2007, 11h46
  4. problème pour appeler une liste de catégorie
    Par minie dans le forum Struts 1
    Réponses: 11
    Dernier message: 29/05/2007, 16h39
  5. Problème pour afficher une liste déroulante
    Par Oli_Ifre dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2007, 09h11

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