|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: ?Dataislands?
Rosa,
The best way to do this is to generate html from your xml which has an
attribute that contains an xpath to the associated xml element or calls
a function with the path as a parameter. Say your xml looked something
like this
<questions>
<tab no="1">
<question text="what is your favourite
colour"></question>
<question text="what is your favourite day"></question>
</tab>
<tab no="2">
<question text="what is your favourite
colour"></question>
<question text="what is your favourite day"></question>
</tab>
</questions>
You could have xslt that displays tabs similar to the paging examples at
http://www.bayes.co.uk/xml/index.xml?/xml/tutorial/paging/paging.xml
Then for questions the xslt would be something like
<xsl:template match="question">
<xsl:value-of select="@text" />
<input type="text" value="{.}">
<xsl:attribute name="onblur">Javascript:updateXML(this,
'<xsl:call-template name="path" />');</xsl:attribute>
</input>
</xsl:template>
<xsl:temlpate name="path">
<xsl:for-each select="(ancestor-or-self::*)">
/*[<xsl:value-of
select="1+count(preceding-sibling::*)"/>]
</xsl:for-each>
</xsl:template>
Which would produce this html for the second tab
what is your favourite colour <input type="text" value=""
onblur="Javascript:updateXML(this, '/*[1]/*[2]/*[1]')'" />
what is your favourite day <input type="text" value=""
onblur="Javascript:updateXML(this, '/*[1]/*[2]/*[2]')'" />
Then your update function would simply be something like
function updateXML(obj, path){
var node = XMLISLAND.selectSingleNode(path);
node.nodeValue = obj.value;
}
I wouldn't use data islands though it is much easier to just create an
xml and xsl object
var XMLOBJECT = new ActiveXObject("MSXML2.DOMDocument");
var XSLOBJECT = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
Ciao Chris
XML/XSL Portal
http://www.bayes.co.uk/xml
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Rosa Cheng
> Sent: 28 February 2002 22:25
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: ?Dataislands?
>
>
> Can anyone please tell me what is the best way to approach
> such a problem using XSL and XML?
>
> I have a page of questions that are divided into tab
> sections, with a bar of tabs at the top of the page. You can
> tab through them or click next to go onto the next tab
> section. You can also come back to the tab sections before
> by clicking on the tabs at the top of the page. What I want
> to do though is to ONLY submit all the answers at the very
> end of the series of questions, i.e. there is a submit button
> only on the very last tab page. But as I change the answers
> and tab through, I want to also keep the answers I had
> entered before. This means I have to somehow save the
> answers entered on the client side through the course of
> questions answering.
>
> There is one possible solution that has come up and it is:
> The original XML will come in and a tabbed questions page
> will be displayed based on that original XML. This XML will
> also be binded to a dataisland. In fact from there onwards,
> the pages will be displayed using the XML from the
> dataisland. So all I need to do is to just keep updating the
> XML binded to the dataisland. And after the user is
> satisfied with what it has answered, then the XML binded to
> the dataisland will be submitted to the server. (But then
> again, it also means I need to write some script that will
> update the dataisland XML with the new answers on the page
> with each tab click.)
>
> I'm not sure whether this is the best approach, can anyone
> please tell me whether there is a better way or this approach
> is fine? If this approach is fine, can anyone direct me to
> an example of such a page or where to find the javascript to
> update the binded XML with answers grabbed from the HTML page
> displayed?
>
> Thank you in advance.
>
> Rosa
>
> P.S. if there is anything that is still unclear please tell
> me, I will try to explain it better.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
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








