This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: dynamically setting 'selected' in option tag


Okay Aaron,

At 08:58 AM 4/13/00 -0700, you wrote:
>Does anyone know what the easiest way to trigger 'selected='true''
>dynamically....

>XML:
><DATA>
><STATE>1</STATE>
></DATA>
...
>HTML:
> <SELECT name="state" size="1">
>  <OPTION value="1" selected>AK</OPTION>
>  <OPTION value="2">AZ</OPTION>
></SELECT>

...it depends on what you mean by "easiest," but try this (a complete
stylesheet):

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="states" select="'AKALAZMDNJWVWY'"/>
<!-- Put all fifty states in this list.
     Processing assumes each state has a two-letter abbreviation. -->

<xsl:variable name="statesinunion" select="7"/>
<!-- The number of states you have.
     Change this to '50' when you have all fifty states. -->

<xsl:variable name="selectedstate" select="DATA/STATE"/>
<!-- This assigns the node to the variable. -->

<xsl:template match="/">
  <SELECT name="state" size="1">
    <xsl:call-template name="USTour"/>
  </SELECT>
</xsl:template>

<xsl:template name="USTour">
  <xsl:param name="statestogo" select="$states"/>
  <xsl:if test="$statestogo">
    <xsl:variable name="thisstate"
      select="($statesinunion+1) - (string-length($statestogo) div 2)"/>
    <OPTION value="{$thisstate}">
      <xsl:if test="$thisstate = $selectedstate">
        <xsl:attribute name="selected">true</xsl:attribute>
      </xsl:if>
      <xsl:value-of select="substring($statestogo, 1, 2)"/>
    </OPTION>
    <xsl:call-template name="USTour">
      <xsl:with-param name="statestogo"
        select="substring($statestogo, 3)"/>
    </xsl:call-template>
  </xsl:if>
</xsl:template>

</xsl:stylesheet>

Regards,
Wendell (possibly outdoing himself in perverseness)


======================================================================
Wendell Piez                            mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]