This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Passing XSL variable to Javascript!
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- subject: RE: [xsl] Passing XSL variable to Javascript!
- From: Rosa I-Ting Cheng <Rosa at ceanet dot com dot au>
- Date: Fri, 10 Aug 2001 11:19:35 +1000
- Reply-To: xsl-list at lists dot mulberrytech dot com
I haven't tested it, but try putting in braces {$temp} instead of just
$temp.
-----Original Message-----
From: Syed Abuthaheer [mailto:abuthaheer.syed@infoworld.com.my]
Sent: Friday, 10 August 2001 11:05 AM
To: XSL-List@lists.mulberrytech.com
Subject: [xsl] Passing XSL variable to Javascript!
Hi all,
I am facing a problem when i am trying to pass a XSL variable to a
javascript function. Herewith i am pasting test.htm, test.xml and test.xsl
codes for ur reference. I am displaying the value of root/address/name from
test.xml as hyperlink using test.xsl. When i am clicking the hyperlink, i am
calling a javascript function callfun1(temp). I am passing the the variable
temp from XSL like (pl refer test.xml and test.xsl code below)
<xsl:for-each select="root/address">
<xsl:variable name="temp"><xsl:value-of select="name"/></xsl:variable>
<a href="JavaScript:callfun1($temp)"><xsl:value-of
select="name"/></a><br/>
</xsl:for-each>
But the value of 'temp' is not passed. Instead '$temp' is passed as such.
Can any one help me to solve this problem.
HTML code:(test.htm)
<html>
<head>
<script language="javascript">
function callfun()
{
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("test.xml")
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("test.xsl");
// Transform
document.write(xml.transformNode(xsl))
}
function callfun1(temp)
{
alert("temp:"+temp);
}
</script>
</head>
<body>
<input type="button" name="click" value="Click" onClick="callfun()">
</body>
</html>
XML code:(test.xml)
<?xml version="1.0" encoding="UTF-8"?>
<root>
<address>
<name>A</name>
</address>
<address>
<name>B</name>
</address>
<address>
<name>C</name>
</address>
</root>
XSL code:(test.xsl)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version =
"1.0" >
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="root/address">
<xsl:variable name="temp"><xsl:value-of select="name"/></xsl:variable>
<a href="JavaScript:callfun1($temp)"><xsl:value-of
select="name"/></a><br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Your assistance is highly appreciated.
Thanks in advance.
Regards,
Syed.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list