dey: PS: Imperative Schleifen

Beitrag lesen

Hallo adapter,

bin schon vor ähnlichen Problemen gestanden:

  • es geht wohl nur mit with-param
  • eine Lösung die mit Option Feldern arbeitet siehst du unten
  • n kann ein Name oder eine Zahl sein
  • p kann nur eine Zahl sein

<!-- eingabefelder für spieler, tore und torwart -->
<xsl:template name="select_player">
<xsl:param name="n" />
<xsl:param name="p" />

<tr>
<td><xsl:value-of select="$p"/></td>
<td>
<select name="player{$p}" size="1">
<option></option>

<xsl:for-each select="//all_games/game/all_players/player[count(. | key('group-players', @name)[1]) = 1]">
<xsl:sort select="@name" order="ascending" data-type="text" />
xsl:choose
 <xsl:when test="@name = $n">
  <option selected=""><xsl:value-of select="@name"/></option>
 </xsl:when>
 xsl:otherwise
  <option><xsl:value-of select="@name"/></option>
 </xsl:otherwise>
</xsl:choose>

</xsl:for-each>
</select>
</td>
<td>
xsl:choose
 <xsl:when test="@name = $n">
  <input name="goals{$p}" type="number" size="2" maxlength="3" value="{goals}"/>
 </xsl:when>
 xsl:otherwise
  <input name="goals{$p}" type="number" size="2" maxlength="3"/>
 </xsl:otherwise>
</xsl:choose>
</td>
<td>
xsl:choose
 <xsl:when test="goalkee = 'Tor' and @name = $n">
  <input type="checkbox" name="goalkee{$p}" value="1" checked=""/>
 </xsl:when>
 xsl:otherwise
  <input type="checkbox" name="goalkee{$p}" value="1"/>
 </xsl:otherwise>
</xsl:choose>
</td>
</tr>

<xsl:if test="$n &gt; 1">
   <xsl:call-template name="select_player">
    <xsl:with-param name="n" select="$n - 1" />
    <xsl:with-param name="p" select="$p + 1" />
   </xsl:call-template>
</xsl:if>

</xsl:template>

bydey

--
-- noch immer ein erfolgloser <DIV> Jünger --