|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: sort and order xml data according to what user sel
This FAQ item
http://www.dpawson.co.uk/xsl/sect2/N6461.html#d6859e950
tells how to set the sort order dynamically.
In brief, something like
<xsl:sort order="{$order}" select="*[name()=$sortByField]"/>
This says "sort elements by their child element whose name
is the value of $sortByField".
So if $sortByField = 'size', you will be sorting publication elements
by the value of their size element child.
Let us know if you try this and are still stuck...
Lars
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Sergey
> Demidenko
> Sent: Friday, July 18, 2003 8:37 PM
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: sort and order xml data according to what user selects
> from a form
>
>
> I want to be able to sort and order my XML data according to
> what the user
> selects from a form.
> I am quite a novice to XSL and haven't worked with forms that
> much at all.
> So, when the user selects "size" from the menu, the XML data
> would be sorted
> by "size"
> and when the user selects the ascending radio button, I want
> the XML data
> order by "ascending"
> How would I acomplish this?
>
> here is the code that I have:
> ---------------------------------------------------------------------
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:template match="/">
> <html><body>
>
> <form id="form" method="post" action="">
> Sort by:
> <select id="sortby">
> <option selected="selected">title</option>
> <option>author</option>
> <option>date</option>
> <option>citation</option>
> <option>pages</option>
> <option>size</option>
> </select>
> Order of:
> <input id="descending" name="sortorder" type="radio"
> value="descending"
> checked="checked" />
> <label for="descending">Descending</label>
> <input id="ascending" name="sortorder" type="radio"
> value="ascending" />
> <label for="ascending">Ascending</label>
> </form>
>
> <xsl:for-each select="catalog/publication">
> <xsl:sort select="date" order="descending" />
> ...
> here where the xml data is displayed
> ...
> </xsl:for-each>
>
> </body></html>
> </xsl:template>
> </xsl:stylesheet>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








