Ben op het moment bezig om een enquete pagina. De enquete zelf wordt beschreven in xml. Sommigge vragen zijn afhankelijk van wat er wordt ingevuld bij de vragen ervoor of er na.
Het probleem is dat het <xsl:for-each> niet geheel volgens plan werkt
question = beschrijft een vraag.
qtext = vraag text.
type = type vraag.
depend = zijn de vragen waar deze vraag van afhankelijk is.
Stukje XML
Het is de bedoeling dat dependArray[vraagnr] = new Array(depend1, depend2); wordt gecreeerd in een stukje javascript.
Stukje XSLT
Als de bovenstaande code wordt aangeroepen onstaat het volgende "dependArray[4] = new Array(1,1);". De waardes van depend veranderen allebei als ik de eerste depend verander.
De xslt boeken zeggen dat je het zo kan doen en ook internet is ook niet veel verhelderd.
Het probleem is dat het <xsl:for-each> niet geheel volgens plan werkt
question = beschrijft een vraag.
qtext = vraag text.
type = type vraag.
depend = zijn de vragen waar deze vraag van afhankelijk is.
Stukje XML
code:
1
2
3
4
5
6
7
8
| <question id="4">
<qtext>Heb je nog suggesties voor de website?</qtext>
<type>open</type>
<depend>1</depend>
<depend>4</depend>
</question> |
Het is de bedoeling dat dependArray[vraagnr] = new Array(depend1, depend2); wordt gecreeerd in een stukje javascript.
Stukje XSLT
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <xsl:template name="dependArray">
var dependArray = new Array();
<xsl:for-each select="question">
dependArray[<xsl:value-of select="@id" />] = new Array(
<xsl:for-each select="depend">
<xsl:value-of select="../depend" />
<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each>);
</xsl:for-each>
</xsl:template> |
Als de bovenstaande code wordt aangeroepen onstaat het volgende "dependArray[4] = new Array(1,1);". De waardes van depend veranderen allebei als ik de eerste depend verander.
De xslt boeken zeggen dat je het zo kan doen en ook internet is ook niet veel verhelderd.