[RESOLU][XSL]Creer un variable pour mettre un width="" pour un table

Creer un variable pour mettre un width="" pour un table [RESOLU][XSL] - XML/XSL - Programmation

Marsh Posté le 28-04-2005 à 14:36:54    

Bonjour a tous je voudrais savoir comment je peux créer une variable qui contiendrai un width="71"  par exemple?
 
Est ce que ceci est bon ??

Code :
  1. $var= " width='"71"' "


 
Et dans mon table comment est ce que je fais pour atteindre ma variable??
 

Code :
  1. <table $var>

???
 
Merci a tous pour votre aide.  :jap:


Message édité par Devil6662 le 28-04-2005 à 16:40:09
Reply

Marsh Posté le 28-04-2005 à 14:36:54   

Reply

Marsh Posté le 28-04-2005 à 14:37:45    

Euh... $var machin c'est du PHP, non ? :heink:

Reply

Marsh Posté le 28-04-2005 à 14:40:02    

oui c aussi du PHP, mais je ne sais pas comment sa fonctionne sous XSL, donc en gros c'était juste une supposition  :(

Reply

Marsh Posté le 28-04-2005 à 14:40:51    

Poste un peu plus de code :( Parce que là t'as rien filé, et on sait pas ce que t'as fait

Reply

Marsh Posté le 28-04-2005 à 14:48:27    

un truc comme ca?

Code :
  1. <xsl:variable name="width">71</xsl:variable>
  2. <table toto="{$width}" >

Reply

Marsh Posté le 28-04-2005 à 14:49:21    

le {}  remplace le xsl:value-of en fait...

Reply

Marsh Posté le 28-04-2005 à 14:49:32    

Code :
  1. <table class="bttn" cellpadding="0" cellspacing="0">
  2. <tr>
  3. <xsl:for-each select="row">
  4.   <td>
  5.     <table  ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);" onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);" onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  6.           <tr>
  7.           <td class="bttn_left_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr></table></td>
  8.           <td class="bttn_center_out"><A HREF="javascript:TwoFrames('menufct?moduleId={col[1]}','fct','#','main');"><xsl:value-of select="col[2]"/></A></td>
  9.           <td class="bttn_right_out"><table class="bttn" cellspacing="0"   width="12"><tr><td></td></tr></table></td>
  10.           </tr>
  11.          </table>
  12.       </td>
  13.    </xsl:for-each>
  14.   </tr>
  15. </table>


 
En gros je boucle avec le for-each et j'affiche des boutons grâce a cette boucle, et ce que je veux, se serai faire en plus avant sa un if pour savoir si row/col[1] = 1 alors width="76", si row/col[n]= n alors width="56",... et comme sa je vais pouvoir spécifier la bonne taille a mes boutons dans le for-each.
 
J'espère avoir été plus clair, merci a toiFlorentG :jap:

Reply

Marsh Posté le 28-04-2005 à 14:51:44    

Avec un <xsl:if, c'est tout con

Reply

Marsh Posté le 28-04-2005 à 14:52:42    

+1

Reply

Marsh Posté le 28-04-2005 à 14:56:17    

Je vais tester tout sa je vous dis quoi d'ici quelques minutes ;)  
 
Et merci déjà a tous les deux  :hello:

Reply

Marsh Posté le 28-04-2005 à 14:56:17   

Reply

Marsh Posté le 28-04-2005 à 15:09:18    

Code :
  1. <xsl:for-each select="row/col[1]">
  2. <xsl:if test="1">
  3. <xsl:variable name="width">71</xsl:variable>
  4. </xsl:if>
  5. </xsl:for-each>
  6. <center>
  7. <table class="bttn" cellpadding="0" cellspacing="0">
  8. <tr>
  9. <xsl:for-each select="row">
  10. <td>
  11. <table toto="{$width}" ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);" onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);" onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  12. <tr>
  13. <td class="bttn_left_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr></table></td>
  14. <td class="bttn_center_out"><A HREF="javascript:TwoFrames('menufct?moduleId={col[1]}','fct','#','main');"><xsl:value-of select="col[2]"/></A></td>
  15. <td class="bttn_right_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr></table></td>
  16. </tr>
  17. </table>
  18. </td>
  19. </xsl:for-each>
  20. </tr>
  21. </table>


 
Voilà ce que j'ai fait, et sa me retourne l'erreur suivante

Citation :

A reference to variable or parameter 'width' cannot be resolved. The variable or parameter may not be defined, or it may not be in scope


 
Voilà, donc à mon avis il y à un prob avec le width dans le <table> mais je ne sais pas quoi. :(  
 
Merci a vous

Reply

Marsh Posté le 28-04-2005 à 15:21:18    

bon t as 2 problemes. deja tu sais pas tres bien te servir du if ,  
et ensuite pour ton cas je suis pas sur que ca soit tres utile..
 
pour ton premier probleme tout ce que tu declare dans le if est detruit quand tu en sort.
pour le second je pense que tu comprendra vite via le premier indice.
 
 
--edit modif en bold ---


Message édité par frenchkiss le 28-04-2005 à 15:23:52
Reply

Marsh Posté le 28-04-2005 à 15:30:43    

Bon voilà maintenant j'ai fermé mon if et mon for-each après le <table> Globale. Donc maintenant sa fonctionne
Mais par contre mon bouton ne s'affiche pas, à mon avis le problème vient encor du toto="{$width}"??

Reply

Marsh Posté le 28-04-2005 à 15:38:18    

? bah c'est normal.
tu dis au mecanicien: si tu est a la colonne 1  
 fais ce que je te dis ( desinne mon tableau..)
mais tu lui dis pas quoi faire d'autre (aux autres colonnes..)
et puis regarde aussi tes for-each... t en a 1 en trop.
p

Reply

Marsh Posté le 28-04-2005 à 15:42:37    

Code :
  1. <center>
  2. <table class="bttn" cellpadding="0" cellspacing="0">
  3. <tr>
  4. <xsl:for-each select="row">
  5. <td>
  6. <xsl:choose>
  7.     <xsl:when test="row = 0">
  8. <!--colonne 0 -->
  9.  <table toto="10" ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);" onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);" onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  10. </xsl:when>
  11. <xsl:otherwise>
  12. <! pas colonne 0 ... -->
  13.  <table toto="56" ID="reporting" class="bttn" cellpadding="0" cellspacing="0" onMouseOver="buttonOver(this);" onMouseOut="buttonOut(this);" onMouseDown="buttonDown(this);" onMouseUp="buttonUp(this);" onClick="buttonClick(this);">
  14. </xsl:otherwise>
  15. </xsl:choose>
  16. <tr>
  17. <td class="bttn_left_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr></table></td>
  18. <td class="bttn_center_out"><A HREF="javascript:TwoFrames('menufct?moduleId={col[1]}','fct','#','main');"><xsl:value-of select="col[2]"/></A></td>
  19. <td class="bttn_right_out"><table class="bttn" cellspacing="0" width="12"><tr><td></td></tr></table></td>
  20. </tr>
  21. </table>
  22. </td>
  23. </xsl:for-each>
  24. </tr>
  25. </table>


 
par exemple

Reply

Marsh Posté le 28-04-2005 à 15:47:37    

est ce qu'on peu faire ceci :

Code :
  1. ...
  2.    </xsl:when>
  3. <xsl:otherwise>
  4.    <xsl:when>
  5.    </xsl:when> 
  6. </xsl:otherwise>
  7. <xsl:otherwise>
  8.    <xsl:when>
  9. ...


Car en gros j'ai 13 boutons a afficher et ce avec des tailles différentes pour chaque.
 
Mais déjà un tout grand merci a toi, j'ai enlevé mon for-each en trop et pour mon 1er bouton sa fonctionne.  :jap:


Message édité par Devil6662 le 28-04-2005 à 15:48:27
Reply

Marsh Posté le 28-04-2005 à 15:50:47    

non pas exactement
tu met autant de when que tu veux
et ca finin pas un otherwise..
 
donc

Code :
  1. <xsl:for-each select = "trucmuch">
  2.   <xsl:choose>
  3.        <xsl:when test="@a = 0">
  4.          aa = 0
  5.       </xsl:when>
  6.       <xsl:when test="@a = 1">
  7.          aa = 1
  8.       </xsl:when>
  9.    <xsl:otherwise>
  10.     aa pas egal a 0 ni a 1
  11.    </xsl:otherwise>
  12.   </xsl:choose>
  13.   </xsl:for-each>


 
a ce moment la je teconseille d'apeller un template en lui passant en parametre la taille du bouton ca sera plus propre.
et au moins t apprendra a te servir des varaibles .. ;)

Reply

Marsh Posté le 28-04-2005 à 16:30:15    

Merci a toi sa fonctionne maintenant. :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed