W3C home > Mailing lists > Public > www-forms@w3.org > August 2006

solved [was [Re: Example for nested select1-controls available?]

From: Oliver Rath <rath@mglug.de>
Date: Thu, 03 Aug 2006 07:45:46 +0200
Message-ID: <44D18D8A.4060409@mglug.de>
To: Aaron Reed <aaronr@us.ibm.com>
CC: www-forms@w3.org, "Kugelman, John" <jkugelman@progeny.net>

That is perfektly working with the xforms-plugin and exactly what I
asked for.  :-)

Thank you!

Oliver


Aaron Reed schrieb:
> 
> Hi Oliver,
> 
> Here is another example that does what I think you want.
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
> "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
>       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>       xmlns:ev="http://www.w3.org/2001/xml-events"
>       xmlns:xf="http://www.w3.org/2002/xforms">
>   <head>
>     <title>Dependent Select1 testcase</title>
> 
>     <xf:model>
>       <xf:instance id="data" xmlns="">
>         <data>
>           <country/>
>           <city/>
>           <hotel/>
>         </data>
>       </xf:instance>
> 
>       <!-- Country list -->
>       <xf:instance id="countries">
>         <countries xmlns="">
>           <country>Denmark</country>
>           <country>France</country>
>           <country>Germany</country>
>           <country>Holland</country>
>         </countries>
>       </xf:instance>
> 
>       <!-- Hotel list -->
>       <xf:instance id="hotels">
>         <hotels xmlns="">
>           <country>
>             <name>Denmark</name>
>             <city>
>               <name>Copenhagen</name>
>               <hotel>Little Mermaid Inn</hotel>
>               <hotel>Nyhavn Hotel</hotel>
>             </city>
>             <city>
>               <name>Ã…lborg</name>
>               <hotel>Skipper Hotel</hotel>
>               <hotel>Smugkroen</hotel>
>             </city>
>           </country>
>           <country>
>             <name>France</name>
>             <city>
>               <name>Paris</name>
>               <hotel>L'Hotel de la Tour Eiffel</hotel>
>               <hotel>Le Ptit Coin</hotel>
>             </city>
>           </country>
>           <country>
>             <name>Germany</name>
>             <city>
>               <name>Düsseldorf</name>
>               <hotel>Schnurbart Imbiss</hotel>
>               <hotel>Bremer Hotel</hotel>
>             </city>
>           </country>
>           <country>
>             <name>Holland</name>
>             <city>
>               <name>Amsterdam</name>
>               <hotel>The Red Tulip</hotel>
>               <hotel>Dam Superior</hotel>
>             </city>
>             <city>
>               <name>Den Haag</name>
>               <hotel>DH Superior</hotel>
>               <hotel>Canal Suites</hotel>
>             </city>
>           </country>
>         </hotels>
>       </xf:instance>
> 
>       <xf:bind nodeset="city"
> relevant="string-length(string(../country)) &gt; 0"/>
>       <xf:bind nodeset="hotel" relevant="string-length(string(../city))
> &gt; 0"/>
>     </xf:model>
>   </head>
> 
>   <body>
>     <h2>Select1 for city should only appear if country has been set.
> Select1
>         for hotel should only appear if city has been set.
>     </h2>
> 
>     <xf:group>
>       <xf:select1 ref="country">
>         <xf:label>Country: </xf:label>
>         <xf:itemset nodeset="instance('hotels')/country">
>           <xf:label ref="name"/>
>           <xf:value ref="name"/>
>         </xf:itemset>
>         <xf:setvalue ref="../city" value="" ev:event="xforms-select"/>
>         <xf:setvalue ref="../hotel" value="" ev:event="xforms-select"/>
>       </xf:select1>
> 
>       <xf:select1 ref="city">
>         <xf:label>City: </xf:label>
>         <xf:itemset nodeset="instance('hotels')/country[name =
> instance('data')/country]/city">
>           <xf:label ref="name"/>
>           <xf:value ref="name"/>
>         </xf:itemset>
>         <xf:setvalue ref="../hotel" value="" ev:event="xforms-select"/>
>       </xf:select1>
> 
>       <xf:select1 ref="hotel">
>         <xf:label>Hotel: </xf:label>
>         <xf:itemset nodeset="instance('hotels')/country[name =
> instance('data')/country]/city[name = instance('data')/city]/hotel">
>           <xf:label ref="." />
>           <xf:value ref="."/>
>         </xf:itemset>
>       </xf:select1>
>     </xf:group>
> 
>   </body>
> </html>
> 
> Let me know if you have any questions/problems with it.
Received on Thursday, 3 August 2006 05:45:58 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 10 March 2012 06:22:06 GMT