Re: [xsl] sort and order xml data according to what user selects from a form

Subject: Re: [xsl] sort and order xml data according to what user selects from a form
From: "Sergey Demidenko" <sergeyd@xxxxxxx>
Date: Sat, 19 Jul 2003 01:56:49 -0400
OK, that makes sense. But how do I use the xsl:variable/xsl:param element to
capture either $order from the menu or $sortByField from the radio button in
the form?


----- Original Message ----- 
From: "Lars Huttar" <lars_huttar@xxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Saturday, July 19, 2003 12:51 AM
Subject: RE: [xsl] sort and order xml data according to what user selects
from a form


> 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: [xsl] 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
>
>


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


Current Thread