[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: pass value between xml and javascript

Subject: RE: pass value between xml and javascript
From: "Chen Wang" <wangchen01@xxxxxxxxx>
Date: Sun, 9 Sep 2001 16:47:46 -0700
document.getelementbyid cityid .onclick
Thanks, Jen,

I use IE 6, I think it is msxml3 supported.  I also tried as described in
the page you referred, such as using xminst stuff, but the code I am using
still does not work.  Javascript seems still work, because if I put directly
the id instead of {cityid}, the function will work.  Here is part of the
code, can you tell me what is wrong?

Here is the code in xsl:
...
<head>
<script language="javascript">

 function WM_toggle(id){

   if (document.all){
     if(document.all[id].style.display == 'none'){
       document.all[id].style.display = 'block';
     } else {
      document.all[id].style.display = 'none';
    }
  } else if (document.getElementById){
    if(document.getElementById(id).style.display == 'none'){
      document.getElementById(id).style.display = 'block';
    } else {
      document.getElementById(id).style.display = 'none';
    }
  }
}
</script>
</head>
<body>
...
<!--menu part-->
<xsl:for-each select="placetogo/urbanspace">
<a href="#" onclick="WM_toggle('{cityid}'); return false"><xsl:value-of
select="placename"/></a> <br />
   </xsl:for-each>
</p>
...
<!--content part-->
 <xsl:for-each select="placetogo/urbanspace">
    <p align="center" class="main" style="display: none"><xsl:attribute
name="id"><xsl:value-of select="cityid"/></xsl:attribute>

   <xsl:value-of select="placename"/> <br />
   <img><xsl:attribute name="src"><xsl:value-of
select="photo/@img"/></xsl:attribute></img> <br />
   <xsl:value-of select="country"/>

 </p>
    </xsl:for-each>...

In xml, it looks like this:
<?xml version="1.0" ?>

<placetogo>
  <urbanspace>
    <cityid>ba</cityid>
    <placename>Bacelona</placename>
    <continent>Europe</continent>
    <country>Spain</country>
    <photo img="barcelona.jpg" />
    <description>Barcelona is a city where architecture and urbanism are
one.</description>
  </urbanspace>

  <urbanspace>
    <cityid>hk</cityid>
    <placename>Hong Kong</placename>
    <continent>Asia</continent>
    <country>China</country>
    <photo img="hong_kong.jpg" />
    <description>Hong Kong is one of the greatest maritime cities there has
ever been---noisy, boisterous, cluttered, and vibrant. </description>
   </urbanspace>

So, in the menu part, the code will read in the city name from xml and the
city name is a link which when it is clicked it will toggle the
correspondent paragraph under content part.  I assume that
WM_toggle('{cityid}') will read in 'ba' and 'hk' for bacelona, and hong kong
link respectively, but the code does not work.  When I clicked the link, it
has error like: document.all[...].style is null or not an object.
Hi Chen,

> Of course it will not work for above line. But how to get that id
> between <cityid> into the WM_toggle function? I also tried this: <a
> href="#" onclick="WM_toggle('{cityid}'); return false">..</a>, but
> it did not work either.

The above should generate some HTML that looks like:

  <a href="#" onclick="WM_toggle('id'); return false">..</a>

If it doesn't, then you are probably using MSXML2 rather than MSXML3.
MSXML2 doesn't support XSLT, but rather a Microsoft-specific variant
which doesn't implement attribute value templates (the {}s). You can
find out more about the difference from the MSXML FAQ at
http://www.netcrucible.com/.

If that's what the transformation's producing but the Javascript
doesn't work, then there's something wrong with the Javascript, not
the XSLT.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


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


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.