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] Problème de variable dans un test [Débutant(e)]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [XSLT] Problème de variable dans un test
    bonjour,

    j'ai un petit soucis avec une variable que j'ai crée et que je n'arrive pas à utiliser comme nom de colonne dans ma table.

    voici mon 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
    <xsl:for-each Select="client_contrat/declarationS/declaration/libelleregime">
    <br/><xsl:variable name="nom" select="concat('declaration',position(),'AGC')"/>
    	<xsl:choose>
    <xsl:when test="../type = 'C'">
    <input type="checkbox" name="$nom" value="2">
    				<xsl:if test="//$nom= '2'">
    					<xsl:attribute name="checked"/>
    				</xsl:if>
    			</input>
    		</xsl:when>
    		<xsl:when test="../type = 'N'">
    			<xsl:value-of select="$nom"/>
    			<input type="text" class="inputbleu " name="$nom" size="7" value="{//client_contrat/@nom}"/>
    		</xsl:when>
    	</xsl:choose>
    	</xsl:for-each>
    Je n'arrive pas à exploiter la variable $nom pour qu'il l'interprete comme la colonne de ma table. Je ne sais pas si c'est du au fait que je fasse un concat pour arriver à crée mon nom de colonne.
    La colonne s'appelle "declaration1AGC" jqa "declaration13AGC"

    Je ne trouve pas la solution, merci de votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    il faut faire :



  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    merci, c'est deja un début

    maintenant je n'arrive pas à effectuer mon premier <xsl:if>, il n'accepte pas les accolades et il n'effectue pas le test avec mon code actuel.

    J'ai un update qui met à jour les champs lorsqu'ils sont remplies, ça marche très bien avec un nom fixe mais ça ne marche pas avec ma variable

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    pourquoi tu mets //?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<xsl:if test="//$nom= '2'">
    <xsl:attribute name="checked"/>
    </xsl:if>
    il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<xsl:if test="$nom= '2'">
    <xsl:attribute name="checked"/>
    </xsl:if>

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    non parce qu'en fait je veux la donnée qui est dans ma base de donnée, or la variable n'est qu'une partie de mon chemin

    en fixe, ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input type="checkbox" name="anim_ago" value="1">
    <xsl:if test="client_contrat/anim_ago = '1'">
    <xsl:attribute name="checked"/>
    </xsl:if>
    </input>
    et je voudrais qu'a la place de anim_ago, je puisse mettre ma variable.

  6. #6
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    anim_ago est un noeud de ton xml?

    si oui, tu ne peux pas stocker de noeud dans une variable, les variables sont des string et ne sont pas interpretées comme des chemins à des noeuds de ton xml!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    oui c'est un bien noeud,

    Mon XML donne ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <client_contrat>
      <anim_ago>
          2
      </anim_ago>
    </client_contrat>
    donc ça veut dire qu'il va falloir que je trouve un autre moyen

    merci pour tes réponses valal

  8. #8
    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,

    Avec un simple prédicat, ça devrait le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="client_contrat/*[name() = $ta_variable] = '1'">
    Par contre, ça ne fonctionnera que si tu as une seule occurrence de noeud portant ce nom.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci grandfather, ça marche parfaitement

    affaire résolue

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

Discussions similaires

  1. Problème de variable dans un foreach
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/05/2006, 16h57
  2. [MySQL] Problme de variables dans requete
    Par eown dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/04/2006, 17h05
  3. Réponses: 8
    Dernier message: 23/03/2006, 19h30
  4. problème de variable dans formulaire
    Par chienlou dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 06h53
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

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