XPath in spry:if

can you use xpath notations i.e.
axisname::nodetest[predicate] scenarios in a spy:if?
i am trying to spry:if a {@name} against the preceding row's
{@name} to output the informatio or not
Kendall

The short answer is no, you can't use xpath notations in
spry:if. The names inside the braces of a data reference are column
names.
Just curious, what exactly are you trying to do? Write out a
header for a repeating section? Or are you trying to some
filtering?
--== Kin ==--

Similar Messages

  • Is xpath.js still part of spry?

    Looking ath the changes to SpryData.js between v. 1.6.1 (0.45) and v. 1.7 (0.49)
    I see that use of the Google XPath library (part of AJAXSLT) is now optional, and Spry Will try to handle the "80% case"
        // The Google XPath library is *NOT* available so handle the 80% case.
        // The following paths are handled by the code below:
        //   /gallery/photos/photo
        //   /gallery/photos/*
        //   gallery/photos/photo
        //   /gallery//photo
        //   //photo
        //   //photo/@path
        //   //photo/@*
    The (unofficial) distribution i've found at https://github.com/3rd-Eden/Spry-Configurator does not seem to contain xpath.js
    Since i have been working on extending XPath and XSLT support in Spry (e.g. XSLTPanel / XSLTDataSet) which requires the AJAXSLT lib:
    Can anyone confirm that xpath.js is no longer part of Spry (2.0) as distributed with Dreamweaver?

    The links to the samples on http://labs.adobe.com/technologies/spry/preview/ are all dead.
    Do you know of any working sample links?
    Doesn't mention it explicitly, but says you can link to xpath.js, i assume that xpath.js is now optional.
    Is xpath.js still included but not linked or has it been completely removed from the spry distribution?
    So when using more advanced xpath expressions (i.e. when using axis selectors and node predicates) spry users should now include the following files from the AJAXSLT project
    http://code.google.com/p/ajaxslt/source/browse/trunk/xmltoken.js
    http://code.google.com/p/ajaxslt/source/browse/trunk/xpath.js

  • Advance xpath query freezes spry

    Hello
    var dsAns = new Spry.Data.XMLDataSet("xml/fileName.xml",
    "//folder[id='IDFour']/ancestor::folder");
    For the xml file below, produces what seems an endless loop.
    This happens in firefox and IE7.
    <?xml version="1.0" encoding="iso-8859-1"?>
    <structure>
    <folder>
    <id>IDOne</id>
    <name>testOne</name>
    <folder>
    <id>IDTwo</id>
    <name>testTwo</name>
    </folder>
    <folder>
    <id>IDThree</id>
    <name>testThree</name>
    <folder>
    <id>IDFour</id>
    <name>testFour</name>
    </folder>
    </folder>
    </folder>
    <folder>
    <id>IDFive</id>
    <name>testFive</name>
    </folder>
    </structure>

    Hi AGM,
    I've reproduced the problem internally, filed a bug for it,
    and will look into it.
    The infinite loop seems to be happening in the Google XPath
    library we use at the time we evaluate the XPath expression.
    --== Kin ==--

  • Spry XmlDataSet: columns using XPath, subPaths with axis

    A couple of questions:
    I'm trying to add additional columns to a dataset whose value is not based a node or attribute but is derived using an XPath expression containing a function.
    Tried to define this using "subPaths" but it results in an error message
    var ds = new Spry.Data.XMLDataSet("my.xml", "//node]", {subPaths: ['position()', 'parent::local-name()']});
    The idea was to generate a flat table from a the xml tree in order to speed up filtering (filtering by ds.setXPath rebuilds the whole dataset)
    Is it possible to specify the columns and types when instantiating a dataset?
    var ds = new Spry.Data.XMLDataSet("my.xml", "//node]", {columns: [{'node': 'html'},{'@attr': 'text'}]);
    Spry seems to always decode entities in attributes, how do I prevent that?
    source XML:
    <outline text="attribute with entities &lt;a href=&quot;#&quot;&gt;link&lt;/a&gt;" />
    setting column type to text:
    ds.setColumnType('@text', 'text');
    has no effect, entities are still decoded
    Using setXPath('//node') results in an error message however using "//node" when calling the constructor does not.
    Any work-around?

    Hi Gramps, thank your for responding.
    From my post is might not have been obvious that i had studied that page in detail, i have also studied the Spry JavaScript files and the google AJAXSLT library used by Spry for parsing XPaths in JavaScript.
    However i can't find an answer to my questions in the documents you reference, could you be more specific in pointing out the secion you believe answers my question(s)?
    What i did find was a way to stop spry from throwing "Regular Expression is too complex" from inside the function
    Spry.Utils.setInnerHTML
    by wrapping the regex evaluation in a try/catch; this temporarily avoids the problems in MSIE but at the cost of not escaping scripts, so i would like to understand why sometimes that exception is thrown. I suspect it has to do with the string being evaluated instead of the regex-pattern.
    And i found a way to add static DataSet references, however in order to do that i had to replace the function
    Spry.Data.DataSet.prototype.getValue
    References i've added so far:
    Data reference
    Content provider
    {ds_XPath}
    Spry.Data.SpryXMLDataSet.getXPath()
    {ds_URL}
    Spry.Data.HTTPSourceDataSet.getURL()
    Feature request:
    I think it would be great to be able to register additional data references to a spry dataset
    ds.addDataReference('ds_XPath', function(dataset, rowContext, valueName){return dataset.getXPath()});
    Link to SpryDataMod.js
    http://feedfunnel.noagendareport.com/assets/spry/SpryDataMod.js

  • Spry XPath question

    This is a multi-part message in MIME format.
    ------=_NextPart_000_00F9_01C6872E.F574B670
    Content-Type: text/plain;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    I have an XML file which describes vacation listings. It is
    divided into =
    major locations (in the code below, U.S. and Mexico) which,
    in turn, =
    include property listings and details. I've gotten it to work
    in a basic =
    master-detail page, but only by ignoring the major locations.
    (In my =
    data set creation code, the XPath expression points to =
    "vacations/location/property"). What I'd really like is to do
    something =
    like this following:
    Region Location Property
    US Florida Vista Hills
    Vancouver Northern Palace
    Mexico Cancun Playa de Picante
    Would I need two data sets to pull this off?
    Best - Joe
    <?xml version=3D"1.0" encoding=3D"iso-8859-1"?>
    <vacations>
    <location>
    <place>U.S.</place>
    <property>
    <name>Vista Hills</name>
    <destination>Florida</destination>
    <contact>407-555-1234</contact>
    <description>The perfect family vacation resort, near
    all area =
    amusement parks.</description>
    <image>vista_hills.jpg</image>
    </property>
    <property>
    <name>Northern Palace</name>
    <destination>Vancouver</destination>
    <contact>407-555-5678</contact>
    <description>Enjoy great shopping and whale watching
    in the ultimate =
    stylish setting.</description>
    <image>northern_palace.jpg</image>
    </property>
    </location>
    <location>
    <place>Mexico</place>
    <property>
    <name>Playa de Picante</name>
    <destination>Cancun</destination>
    <contact>+52-998-555-1234</contact>
    <description>Fun in the sun to the max - don't miss
    the vacation of a =
    lifetime.</description>
    <image>picante.jpg</image>
    </property>
    </location>
    </vacations>
    ------=_NextPart_000_00F9_01C6872E.F574B670
    Content-Type: text/html;
    charset="iso-8859-1"
    Content-Transfer-Encoding: quoted-printable
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
    Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=3DContent-Type content=3D"text/html; =
    charset=3Diso-8859-1">
    <META content=3D"MSHTML 6.00.2900.2873"
    name=3DGENERATOR>
    <STYLE></STYLE>
    </HEAD>
    <BODY>
    <DIV><FONT face=3DArial size=3D2>I have an XML
    file which describes =
    vacation=20
    listings. It is divided into major locations (in the
    code below, =
    U.S. and=20
    Mexico) which, in turn, include property listings and
    details. I've =
    gotten it to=20
    work in a basic master-detail page, but only by ignoring the
    major =
    locations.=20
    (In my data set creation code, the XPath expression points to
    "<SPAN=20
    style=3D"FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: Arial;
    =
    mso-fareast-font-family: 'Times New Roman';
    mso-bidi-font-family: 'Times =
    New Roman'; mso-ansi-language: EN-US; mso-fareast-language:
    EN-US; =
    mso-bidi-language:
    AR-SA">vacations/location/property</SPAN>").=20
    What I'd really like is to do something like this =
    following:</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3DArial=20
    size=3D2><U>Region        Locatio=
    n       =20
    Property</U></FONT></DIV>
    <DIV><FONT face=3DArial=20
    size=3D2>US          &n=
    bsp;  =20
    Florida        
     Vista=20
    Hills</FONT></DIV>
    <DIV><FONT face=3DArial=20
    size=3D2>          &nbs=
    p;       =20
    Vancouver    Northern
    Palace</FONT></DIV>
    <DIV><FONT face=3DArial =
    size=3D2>Mexico       =20
    Cancun         Playa
    de=20
    Picante</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3DArial size=3D2>Would I need two
    data sets to pull this =
    off?</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3DArial size=3D2>Best -
    Joe</FONT></DIV>
    <DIV><FONT face=3DArial
    size=3D2></FONT> </DIV>
    <DIV><FONT face=3D"Courier New"
    size=3D2>&lt;?xml version=3D"1.0"=20
    encoding=3D"iso-8859-1"?&gt;<BR>&lt;vacations&gt;<BR>&lt;location&gt;<BR>=
     &lt;place&gt;U.S.&lt;/place&gt;<BR> &lt;property&gt;<BR> =
     &lt;name&gt;Vista=20
    Hills&lt;/name&gt;<BR>  &lt;destination&gt;Florida&lt;/destinat=
    ion&gt;<BR>  &lt;contact&gt;407-555-1234&lt;/contact&gt;<BR>&nb=
    sp; &lt;description&gt;The=20
    perfect family vacation resort, near all area amusement=20
    parks.&lt;/description&gt;<BR>  &lt;image&gt;vista_hills.jpg&lt=
    ;/image&gt;<BR> &lt;/property&gt;<BR> &lt;property&gt;<BR>&nbsp=
    ; &lt;name&gt;Northern=20
    Palace&lt;/name&gt;<BR>  &lt;destination&gt;Vancouver&lt;/desti=
    nation&gt;<BR>  &lt;contact&gt;407-555-5678&lt;/contact&gt;<BR>=
      &lt;description&gt;Enjoy=20
    great shopping and whale watching in the ultimate stylish=20
    setting.&lt;/description&gt;<BR>  &lt;image&gt;northern_palace.=
    jpg&lt;/image&gt;<BR> &lt;/property&gt;<BR>&lt;/location&gt;<BR>&lt;=
    location&gt;<BR> &lt;place&gt;Mexico&lt;/place&gt;<BR> &lt;prop=
    erty&gt;<BR>  &lt;name&gt;Playa=20
    de=20
    Picante&lt;/name&gt;<BR>  &lt;destination&gt;Cancun&lt;/destina=
    tion&gt;<BR>  &lt;contact&gt;+52-998-555-1234&lt;/contact&gt;<B=
    R>  &lt;description&gt;Fun=20
    in the sun to the max - don't miss the vacation of a=20
    lifetime.&lt;/description&gt;<BR>  &lt;image&gt;picante.jpg&lt;=
    /image&gt;<BR> &lt;/property&gt;<BR>&lt;/location&gt;<BR>&lt;/vacati=
    ons&gt;</FONT></DIV></BODY></HTML>
    ------=_NextPart_000_00F9_01C6872E.F574B670--

    Thanks, Kin -
    I figured out how to create the two data sets as you
    described, but was
    looking for the single list solution with nested repeating
    nodes.
    Looking forward to your solution!
    Best - Joe
    "kinblas" <[email protected]> wrote in
    message
    news:e62dkj$qun$[email protected]..
    > Hi Joe,
    >
    > If you are trying to display the info for "place",
    "name" and
    > "destination"
    > all in one table or list we can't handle that at the
    moment due to the way
    > we
    > flatten the XML into a data set. Repeating nodes
    underneath repeating
    > nodes get
    > discarded.
    >
    > We're working on a solution though.
    >
    > We can handle your XML structure with a Master/Detail
    pattern though.
    >
    > var dsPlaces = new XMLDataSet("location.xml",
    > "/vacations/location/place");
    > var dsProperties = new XMLDataSet("location.xml",
    > "/vacations/location[place =
    > '{dsPlaces::place}']/property");
    >
    > Using data sets like the above would assume that you'd
    have a place for
    > users
    > to click on a list of places and the detail area would
    display the
    > properties
    > for the currently selected place.
    >
    > --== Kin ==--
    >

  • Spry Dynamic Tabs - reCAPTCHA is missing when loading external php file

    Hello,
    I have solved all my problems lately on this forum.
    But now im converting my site to use Dynamic tabs, and something goes wrong.
    The dynamic tabs load content from external files. It loads html but i think something goes wrong with php and my buttons.
    You need to know ALL is working perfect on the old site.
    2 problems;
    I dont know how to convert my buttons to this new style.
    I dont know why the reCAP suddently is missing.
    Why is reCAPTCHA missing?
    SOURCE HTML (index.html);
    <?php include("PHP/form.php"); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
         <title>Wientjes Voegwerk &amp; Renovatie - Home</title>
        <meta http-equiv="Content-Language" content="NL" />
         <meta http-equiv="imagetoolbar" content="no" />
         <meta name="MSSmartTagsPreventParsing" content="true" />
        <meta name="description" content="Wientjes Voegwerk en Renovatie is een voeg- en renovatiebedrijf gespecialiseerd in gevelrenovatie. Dagelijkse werkzaamheden zijn het voegen van nieuwbouwwerk, en alle voorkomende vormen van gevelrenovatie. Ik geef uw woning, garage of schoorsteen de aandacht die het verdient en ben trots op het resultaat van mijn werk!"/>
        <meta name="keywords" content="Voegwerk, Renovatie, Reinigen, Impregneren, Muur, Voegen, Steen, Woning, Garage, Schoorsteen, Bedrijf, Gevel, Wientjes, Uitslijten, Kappen, Fundering, Vorstschade, Metselen, Metselwerk, Vocht" />
        <meta name="author" content="Rob Nijlaan" />
        <link href="CSS/Style2.css" rel="stylesheet" type="text/css" />
        <script src="JAVASCRIPT/SpryTabbedPanels.js" type="text/javascript"></script>
        <script src="JAVASCRIPT/SpryEffects.js" type="text/javascript"></script>
         <script src="JAVASCRIPT/SpryData.js" type="text/javascript"></script>
        <script src="JAVASCRIPT/xpath.js" type="text/javascript"></script>
         <script type="text/javascript">
         <!--
         function FadeAndUpdateContent(ele, url){
              try {
                   Spry.Effect.DoFade(ele,{
                        duration: 500, from: 100, to: 0, finish: function() {
                             Spry.Utils.updateContent(ele, url, function() {
                                  Spry.Effect.DoFade(ele,{ duration: 500, from: 0, to: 100 });
              catch(e){ alert(e); }
         -->
         </script>
    </head>
    <body>
    <div id="WContainer">
      <div id="WHeader" align="center"> <img src="Art/VoegenRenLos.png" width="540" height="58" alt="Voeg en Renovatiebedrijf" /><br />
        <img src="Art/WientLogo.png" width="600" height="136" alt="Wientjes Voegwerk &amp; Renovatie" /> </div>
      <script type="text/javascript">
         var dsTabs = new Spry.Data.XMLDataSet("data/data.xml", "tabs/tab");
         function loadContent(panel,url){
              Spry.Utils.updateContent(panel,url);
         Spry.Data.Region.addObserver("example1Region",dateLoadedCallback);
         function dateLoadedCallback(notificationType, notifier, data){
              if (notificationType =="onPostUpdate"){    
                   row= dsTabs.getRowByRowNumber(0)
                   if(row){
                        loadContent('0',row.url)
         </script>
      <div id="example1Region" spry:region="dsTabs">
        <div id="dynamicTabs" class="TabbedPanels">
          <ul class="TabbedPanelsTabGroup" >
            <li spry:repeat="dsTabs" class="TabbedPanelsTab" onclick="loadContent('{ds_RowID}','{url}');" tabindex="0">{title}</li>
          </ul>
          <div class="TabbedPanelsContentGroup">
            <div spry:repeat="dsTabs" id="{ds_RowID}" class="TabbedPanelsContent"></div>
          </div>
        </div>
        <script type="text/javascript">
                var t1 = new Spry.Widget.TabbedPanels("dynamicTabs");
                 </script>
      </div>
      <div id="WFooter" align="center">
        <p class="footer">Wientjes Voegwerk &amp; Renovatie     ,    03- '02       »      Site by ;    <b>Rob Nijlaan</b></p>
      </div>
    </div>
    </body>
    </html>
    Dont mind the extra javascripts they are not used for now (like SpryEffects.js) its for future use.
    SOURCE XML (data.xml);
    <?xml version="1.0" encoding="UTF-8"?>
    <tabs>
        <tab>
            <title>
              tab 1
              </title>
            <url>../data/HOME.html</url>
        </tab>
        <tab>
            <title>Tab2</title>
            <url>examples/tab2.html</url>
        </tab>
         <tab>
            <title>Tab3</title>
            <url>examples/tab2.html</url>
        </tab>
         <tab>
            <title>Tab4</title>
            <url>../PHP/form.php</url>
        </tab>
    </tabs>
    The html file loads like it should be, but the php form has problems.
    See it yourself: http://www.wientjesvoegwerk.nl/index2.html
    The tab 1 displays a html file like it should.
    The tab 4 displays the contact form but you will see the reCAPTHCA is missing.
    I have really no clue why it happens, exept maybe its a PHP issue.
    Maybe the script isnt compatible with non-html documents...
    Can someone please tell me whats the problem and if there is a solution????
    How do i change this button?
    I used this in my previous site:
    <table class="Button"  >
         <tr>
         <td style="padding-right:0px" title ="Home">
         <a href="#" title="Home" style="background-image:url(/Buttons/Home.png);width:172px;height:75px;display:block;"><br/>
         </a></td>
         </tr>
    </table>
    But the dynamic script uses {title} to get the <title> out of the xml.
    I tryd to put this straight into the title tags in the xml but obviously it wont work.
    And i really dont have a clue how to change this.
    My button has a mouseover img. Basicly its 2 buttons in 1 img stacked on top of each other.
    Like this: http://www.wientjesvoegwerk.nl/Buttons/contact.png
    Because of the CSS script it hovers to the right position.
    Part of SOURCE CSS (Style.css)
    .Button a{display:block;}
    .Button a:hover{background-position:left bottom;}
    a.Button {display:none}
    How can i change the xml and the script so "title" can be replaced with the button.
    Or how can i change the button so the mouseover works and the script still takes the button-img from the xml???
    Any help would be nice, because im finnaly in a postition to finish this site, and this is the only blockade left to conquer...

    Maybe it is not liking that the index page is an HTML page and not a PHP page. Try this way:
    In your form.php, remove the following code:
    <?php
    require_once('recaptchalib.php');
    $publickey = "6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm"; // you got this from the signup page
    echo recaptcha_get_html($publickey);
    ?>
    Replace it with:
    <script type="text/javascript" src="http://api.recaptcha.net/challenge?k=6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm"></script>
        <noscript>
              <iframe src="http://api.recaptcha.net/noscript?k=6LfKNwwAAAAAAEdS6PjiDSHRQBDOYrGcM8R1eQQm" height="300" width="500" frameborder="0"></iframe><br/>
              <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
              <input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
        </noscript>
    The replacement code is the same code that is outputted from the recaptchalib.php file.

  • Spry repeted region: only at filtering

    Hi all:
    I made a typical spry region with a table and an spry:repeat. Also I included a form with a text field and a button for filter. Everything works fine.
    When the user loads the page, all data is shown and that was fine while the XML file has few data. But now I have about 2500 rows and it has no sense to show all the data at first. I'd like that when the user load the page, it shows the page with no data. The data must be shown only when a filter is executed.
    I tried with this:
    <script type="text/javascript">
    var dsMyData = new Spry.Data.XMLDataSet("xml/data.xml ....
    dsMyData.filter(null);
    and it works but..... it takes some time to process... almost the same if all data were shown. Also I tried moving the dataset's declaration  to other parts of the code with no success. Is there a way to make the dataset works only when the user click my search button and  not when the page is loaded?
    Thanks a lot and sorry my english
    PC

    I tend to use XPath to filter larger datasets. On change of the selected item you can change the value of XPath to show that data range.
    Have a look here http://labs.adobe.com/technologies/spry/samples/data_region/XPathFilteringSample.html
    Gramps

  • Spry Tabbed XML data panels within HTMLPanel not working.

    Many thanks for reading.
    s
    I trying to provide a rapid solution using adobe's samples
    to make Spry Tabs work within an html panel (in order to avoid
    many links in my page).
    I am using the following code:
    initial page with html panel with the ready products.js to parse the links:
    <script src="../SpryAssets/xpath.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryData.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryPagedView.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryDOMUtils.js" type="text/javascript"></script>
    <script  src="../SpryAssets/SpryHTMLPanel.js" type="text/javascript"></script>
    <script language="JavaScript" type="text/javascript" src="../SpryAssets/SpryDataExtensions.js"></script>
    <script src="SpryNestedXMLDataSet.js" type="text/javascript"></script>
    <script src="../SpryAssets/products.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="TabbedPanels/SpryTabbedPanels.css"/>
    <script src="TabbedPanels/SpryTabbedPanels.js"></script<script type="text/javascript">
    var ds1 = new Spry.Data.XMLDataSet("ajaxbibliaxmlbridgetitle.php", "root/row[katigoria=1]", {sortOnLoad: "ID_BIBLIOU", sortOrderOnLoad: "ascending"});
    var pv1 = new Spry.Data.PagedView( ds1 ,{ pageSize:10 });
    var pv1PagedInfo = pv1.getPagingInfo();
    //var TabbedPanels1 = new Spry.Widget.TabbedPanels();          
    </script>
    </head>
    <body class="twoColFixRtHdr">
    <div id="container">
    <div id="sidebar1">
      <div id="productPageLinks">
       <ul>
        <li><a href="index.php">Index</a></li>
        <li><a href="booklist.php">Product List</a></li>
            <li><a href="test.php">Σχετικά με τη Βιβλιοθήκη</a></li>
       </ul>   
      </div>
    </div>
    <div id="mainContent">
    <br />
    <div class="HTMLPanelLoadingContent"> Waiting</div>
    <div class="HTMLPanelErrorContent"> error </div>
    </div>
    </div>
    </body>
    </html>
    Products.js (adobe'S change to can load xml dataset)
    var mainPanel = null;
    // Our initialization function which unobtrusively attaches
    // click handlers on the product links within the page.
    function InitProductPage()
    mainPanel = new Spry.Widget.HTMLPanel("mainContent" , { evalScripts: true });
        var observer = {onPostUpdate: function(){ Spry.Data.initRegions('mainContent'); 
    mainPanel.addObserver(observer);
    // For every link on the page which points to a product page,
    // attach an onclick handler that will intercept clicks and
    // and fire off a request to load the URL via the HTMLPanel.
    // For these links, we want to load the static product page
    // and extract out the content underneath the "mainContent"
    // node.
    Spry.$$("#productPageLinks a").addEventListener("click", function(e)
      mainPanel.loadContent(this.href, { id: "mainContent" });
      return false;
    }, false);
    // For every link on the page which points to a product HTML
    // fragment, attach an onclick handler that will intercept clicks and
    // and fire off a request to load the URL via the HTMLPanel.
    // For these links, we are loading HTML fragments, so there is no
    // need to specify an ID to extract out. The HTMLPanel will insert
    // all of the content recieved.
    Spry.$$("#productFragmentLinks a").addEventListener("click", function(e)
      mainPanel.loadContent(this.href);
      return false;
    }, false);
    // Add our InitProductPage() function as a load listener
    // so that it gets executed once the page has fully loaded.
    Spry.Utils.addLoadListener(InitProductPage);
    XML data and stuff all loaded correctly
    What I am trying to do is to load a second page from a link in my initial page
    that contains a Tabbed Panel.
    The page loads but no panel functionality exists. The first Panel load correctly but behaves as a simple html page .
    I have searched several hours the forums and playing around by moving the definition of Spry.Widget.TabbedPanels within
    the initial HTMLPanel page and other spots but this  produced js errors as expected (because the tab panel definitions exist in bookcategories.php)
    which is loaded only when it is called.
    Any ideas?
    Page to load is like this :
    <bookcategories.php>
    <link rel="stylesheet" type="text/css" href="TabbedPanels/SpryTabbedPanels.css"/>
    <script src="TabbedPanels/SpryTabbedPanels.js"></script>
    <script language="JavaScript" type="text/javascript" src="../SpryAssets/SpryDataExtensions.js"></script>
    </head>
    <body >
    <div id="container">
    <div id="mainContent">
             <div class="TabbedPanels" id="TabbedPanels1">
      <ul class="TabbedPanelsTabGroup">
              <li class="TabbedPanelsTab">SOmething ... </li>
              <li class="TabbedPanelsTab">Something else </li>
    <
      </ul>
      <div class="TabbedPanelsContentGroup">
              <div class="TabbedPanelsContent">Blah Blah
                  <div spry:region="pv1" id="bibliapv"><br />
                    <br />
                  <div spry:state="ready">
                      <table width="775" height="42"  >
                        <tr style="color:#900"; >
    <th etc>
                        </tr>
                        <tr spry:repeat="pv1" spry:even="even" spry:odd="odd">
                          <td >       {ID_}
                         </td>
                          <td>{Writer}</td>
                          <td>{Book_Title}</td>
                           </tr>
                      </table>
                    </div>
                  </div>
              <div class="TabbedPanelsContent">Tab 2 Content</div>
    <div class="TabbedPanelsContent">Tab 3 Content</div>
       <div class="TabbedPanelsContent">Tab 4 Content</div>
      </div>
    </div>
    </div>
    <br class="clearfloat" />
    </div>
    <script type="text/javascript">
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
    </script>
    </body>
    </html>
    Many thanks

    Ok I went back through everything and checked to make sure my
    files were in the right places both my SpryTabbedPanels.css and my
    SpryTabbedPanels.js are in the SpryAssets folder and they work fine
    until I try and add data from an xml file to them then the tabs
    populate with the info but become unclickable and the content area
    has every bit of content in on tab. Below is what I have let me
    know what I'm doing wrong I am using Spry 1.6
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
    Transitional//EN" "
    http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="
    http://www.w3.org/1999/xhtml"
    xmlns:spry="
    http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=utf-8" />
    <title>Untitled Document</title>
    <script src="SpryAssets/xpath.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryTabbedPanels.js"
    type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    var ds1 = new Spry.Data.XMLDataSet("solutions3.xml",
    "solutions/solution");
    //-->
    </script>
    <link href="SpryAssets/SpryTabbedPanels.css"
    rel="stylesheet" type="text/css" />
    </head>
    <body>
    <div spry:region="ds1">
    <div id="TabbedPanels1" class="TabbedPanels">
    <ul class="TabbedPanelsTabGroup">
    <li spry:repeat="ds1" class="TabbedPanelsTab"
    tabindex="0">{name}</li>
    </ul>
    <div class="TabbedPanelsContentGroup">
    <div spry:repeat="ds1"
    class="TabbedPanelsContent">{desc}</div>
    </div>
    </div>
    </div>
    <script type="text/javascript">
    <!--
    var TabbedPanels1 = new
    Spry.Widget.TabbedPanels("TabbedPanels1");
    //-->
    </script>
    </body>
    </html>

  • Spry Menu Bar Submenu won't show in Safari or Dreamweaver LiveView

    I am trying to get my submenu to show up on my website's spry menu bar. It will show up when I test the site using firefox or IE but it won't show when I try LiveView in Dreamweaver or when I test using Safari. The site is www.fuseut.com/fuse
    Here are is the CSS for the menubar:
    @charset "UTF-8"; /* SpryMenuBarHorizontal.css - version 0.6 - Spry Pre-Release 1.6.1 */ /* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */ /******************************************************************************* LAYOUT INFORMATION: describes box model, positioning, z-order *******************************************************************************/ /* The outermost container of the Menu Bar, an auto width box with no margin or padding */ ul.MenuBarHorizontal {      margin: 0;      padding: 0;      list-style-type: none;      font-size: 100%;      cursor: default;      width: auto; } /* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html */ ul.MenuBarActive {      z-index: 1000; } /* Menu item containers, position children relative to this container and are a fixed width */ ul.MenuBarHorizontal li {      margin: 0;      padding: 0;      list-style-type: none;      font-size: 100%;      position: relative;      text-align: left;      cursor: pointer;      width: 125px;      float: left;      font-family: "MS Serif", "New York", serif;      overflow: visible; } /* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */ ul.MenuBarHorizontal ul {      margin: 0;      padding: 0;      list-style-type: none;      font-size: 100%;      z-index: 50;      cursor: default;      width: 7em;      position: absolute;      left: -1000em; } /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */ ul.MenuBarHorizontal ul.MenuBarSubmenuVisible {      left: auto; } /* Menu item containers are same fixed width as parent */ ul.MenuBarHorizontal ul li {      width: 7em; } /* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */ ul.MenuBarHorizontal ul ul {      position: absolute;      margin: -5% 0 0 95%; } /* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */ ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible {      left: 0;      top: 0; } /******************************************************************************* DESIGN INFORMATION: describes color scheme, borders, fonts *******************************************************************************/ /* Submenu containers have borders on all sides */ ul.MenuBarHorizontal ul {      border: 1px solid #CCC; } /* Menu items are a light gray block with padding and no text decoration */ ul.MenuBarHorizontal a {      display: block;      cursor: pointer;      padding: 0.5em 0.75em;      color: #FFF;      text-decoration: none;      font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;      text-align: center;      background-image: url(../menubgdefault.png); } /* Menu items that have mouse over or focus have a blue background and white text */ ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus {      color: #FFF002;      font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; } /* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */ ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible {      color: #FFF002;      text-decoration: underline;      font-weight: bold; } /******************************************************************************* SUBMENU INDICATION: styles if there is a submenu under a given menu item *******************************************************************************/ /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal a.MenuBarItemSubmenu {      background-image: url(SpryMenuBarDown.gif);      background-repeat: no-repeat;      background-position: 95% 50%;      background-color: #999; } /* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal ul a.MenuBarItemSubmenu {      background-image: url(SpryMenuBarRight.gif);      background-repeat: no-repeat;      background-position: 95% 50%; } /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal a.MenuBarItemSubmenuHover {      background-image: url(SpryMenuBarDownHover.gif);      background-repeat: no-repeat;      background-position: 95% 50%; } /* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */ ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover {      background-image: url(SpryMenuBarRightHover.gif);      background-repeat: no-repeat;      background-position: 95% 50%; } /******************************************************************************* BROWSER HACKS: the hacks below should not be changed unless you are an expert *******************************************************************************/ /* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */ ul.MenuBarHorizontal iframe {      position: absolute;      z-index: 1010;      filter:alpha(opacity:0.1); } /* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */ @media screen, projection {      ul.MenuBarHorizontal li.MenuBarItemIE      {           display: inline;           f\loat: left;           background: #FFF;      } }
    And here is the HTML code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>FUSE UT</title>
    <link href="stylesheet.css" rel="stylesheet" type="text/css" />
    <script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryAccordion.js" type="text/javascript"></script>
    <script src="Scripts/swfobject_modified.js" type="text/javascript"></script>
    <script src="SpryAssets/xpath.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
    <link href="SpryAssets/SpryAccordion.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    <!--
    #apDiv1 {
         position:absolute;
         left:0px;
         top:135px;
         width:551px;
         height:269px;
         z-index:2;
         visibility: visible;
    #apDiv2 {
         position:absolute;
         left:685px;
         top:150px;
         width:203px;
         height:270px;
         z-index:1;
    #apDiv3 {
         position:absolute;
         left:684px;
         top:149px;
         width:200px;
         height:267px;
         z-index:2;
    #HomeEvents {
         position:fixed;
         left:683px;
         top:151px;
         width:200px;
         height:263px;
         z-index:1;
         background-image: url(Components/EventsPic.png);
         visibility: visible;
         overflow: hidden;
    #HomeEvents {
         position:absolute;
         left:550px;
         top:-1px;
         width:200px;
         height:265px;
         z-index:2;
    #EventsXML {
         position:absolute;
         left:1px;
         top:43px;
         width:199px;
         height:223px;
         z-index:3;
         visibility: visible;
         overflow: scroll;
    #apDiv4 {
         position:absolute;
         left:-1px;
         top:265px;
         width:753px;
         height:325px;
         z-index:3;
         background-image: url(home1.png);
    -->
    </style>
    <script type="text/javascript">
    <!--
    var event = new Spry.Data.XMLDataSet("events.xml", "catalog/event", {sortOnLoad: "date", sortOrderOnLoad: "descending"});
    var event2 = new Spry.Data.XMLDataSet("events.xml", "catalog/event", {sortOnLoad: "date", sortOrderOnLoad: "ascending"});
    event2.setColumnType("date", "date");
    //-->
    </script>
    <meta name="Keywords" content="fuse ut utk university of tennessee tommy jervis avery howard ross rowland angie sessoms sga campaign elections" />
    </head>
    <body>
    <div id="container">
    <div id="header">
    </div>
    <div id="menubarparent" style="z-index: 20; position: absolute; overflow: visible;">
    <div id="menubar" style="z-index: 10;">
    <ul id="MenuBar1" class="MenuBarHorizontal">
        <li><a href="index.html">FUSE</a>      </li>
        <li><a href="senators.html" class="MenuBarItemSubmenu">Senators</a>
          <ul>
            <li><a href="#">Untitled Item</a></li>
          </ul>
        </li><li><a href="executive.html">Executive</a>      </li>
        <li><a href="policy.html">Policy</a></li>
        <li><a href="organizations.html">Organizations</a></li>
        <li><a href="bios.html" class="MenuBarItemSubmenu">Bios</a>
          <ul>
            <li><a href="#">Untitled Item</a></li>
          </ul>
        </li>
      </ul>
      </div>
      </div>
      <p>
      <p>
      <div id="apDiv1">
        <div id="apDiv4"></div>
        <object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="265" wmode="transparent">
          <param name="movie" value="Components/CandidatesHomeSlideshow.swf" />
          <param name="quality" value="high" />
           <param name="wmode" value="transparent" />
          <param name="swfversion" value="6.0.65.0" />
          <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
          <param name="expressinstall" value="Scripts/expressInstall.swf" />
          <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
          <!--[if !IE]>-->
          <object type="application/x-shockwave-flash" data="Components/CandidatesHomeSlideshow.swf" width="550" height="265" wmode="transparent">
            <!--<![endif]-->
            <param name="quality" value="high" />
              <param name="wmode" value="transparent" />
            <param name="swfversion" value="6.0.65.0" />
            <param name="expressinstall" value="Scripts/expressInstall.swf" />
            <!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
            <div>
              <h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
              <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" width="112" height="33" /></a></p>
            </div>
            <!--[if !IE]>-->
          </object>
          <!--<![endif]-->
        </object><div id="HomeEvents">
          <p> </p>
          <p> </p>
          <div id="EventsXML">
            <div spry:region="event2">
              <dl spry:repeatchildren="event2">
                <dt>{date}</dt>
                <dd>{title}</dd>
                <dd>{location}</dd>
              </dl>
            </div>
          </div>
        </div>
      </div>
      <p> </p>
      <p> </p>
      <p> </p>
      <p> </p>
    </div>
    <script type="text/javascript">
    <!--
    var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
    swfobject.registerObject("FlashID");
    //-->
    </script>
    </body>
    </html>
    Sorry if it's something really basic...I'm a noob to web design.
    Thanks!

    Don't use reserved words in JS
    var event = new Spry.Data.XMLDataSet("events.xml", "catalog/event", {sortOnLoad: "date", sortOrderOnLoad: "descending"});
    event is such a reserved word. If you change this to event1 then all is well.
    I hope this helps.
    Ben

  • How do I display on-the-fly generated XML on a web page using DW CS4 Spry regions?

    On a main web page I'm trying to display formatted data from an ASP page that generates XML on-the-fly from a query.
    When I run the ASP page from the browser, the XML formatting of the data works. But when I run the main web page, the data doesn't display.
    I'm using  DW CS4 Spry regionsto display the data on the main page from the XML data generated by the ASP page. Here's the main page code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache" >
    <html>
    <head>
    <script type="text/javascript" src="SpryAssets/xpath.js"></script>
    <script type="text/javascript" src="SpryAssets/SpryData.js"></script>
    <script type="text/javascript" src="SpryAssets/SpryUtils.js"> </script>
    <script type="text/javascript">var A1D1xml = new Spry.Data.XMLDataSet("A1D1ACRs_testWxmlCode.asp", "tests/test");</script>
    <title>Test XML Main</title>  
    </head>
    <body>
          <div id="A1D1xml" spry:region="A1D1xml">
                                    <table id="A1D1">
                <tr>
                <th>ID</th>
                <th>Last Name</th>
                <th>Final Status</th>
                </tr>
                <tr spry:repeat="A1D1xml">
                       <td>{acr_id}</td>
                    <td>{acr_lastName}</td>
                    <td>{acr_final_status}</td>
                </tr>
                  </table>
             </div>
    </body>
    </html>
    Here's the code for the page that generates the XML: A1D1ACRs_testWxmlCode.asp
    <html>
    <%
    set objConn=server.CreateObject("ADODB.Connection")
    objConn.Open application("web_test")
    set rs = objConn.Execute( "SELECT acr_id, acr_lastName, acr_final_status from acr_records_grid_view where acr_changeOption = 'A1D1'")
    Response.ContentType = "text/xml"
    Response.AddHeader "Pragma", "public"
    Response.AddHeader "Cache-control", "private"
    Response.AddHeader "Expires", "-1"
    %>
    <?xml version="1.0" encoding="utf-8"?>
    <tests>
      <%While (NOT rs.EOF)%>
                    <test>
                                    <ID><%=(rs.Fields.Item("acr_id").Value)%></ID>
                                    <acr_lastName><![CDATA[<%=(rs.Fields.Item("acr_lastName").Value)%>]]></acr_lastName>
                                    <acr_final_status><![CDATA[<%=(rs.Fields.Item("acr_final_status").Value)%>]]></acr_final_s tatus>
                    </test>
        <%
                    rs.MoveNext()
                    Wend
      %>
    </tests>
    <%
    rs.Close()
    Set rs = Nothing
    %>
    </html>
    Thanks.

    Thanks, but no; I'm using the correct case and folder.
    With this code on the main page, The region flashes the table column header names
    and the code as written for the spry repeat; then instantly disappears from the screen.
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="SpryAssets/xpath.js"></script>
    <script type="text/javascript" src="SpryAssets/SpryData.js"></script
    <script type="text/javascript">var A1D1x = new Spry.Data.XMLDataSet("A1D1ACRs_testWxmlCode.xml", "tests/test");</script>
    <title>Test XML Main</title>  
    </head>
    <body>
          <div id="A1D1" spry:region="A1D1x">
                   <table id="A1D1a">
                <tr>
                <th>ID</th>
                <th>Last Name</th>
                <th>Final Status</th>
                </tr>
                <tr spry:repeat="A1D1x">
                    <td>{acr_id}</td>
                    <td>{acr_lastName}</td>
                    <td>{acr_final_status}</td>
                </tr>
                  </table>
             </div>
    </body>
    </html>

  • Spry Data needs to popluate 2 widgets on the fly

    I have thrown together two spry widgets that should populate
    with XML data based on what is selected from a form control.
    -Based on what is selected from the from control, the tabbed
    menu should update it's tabs and content.
    -In the tabbed menu content I have put a horizontal menu bar.
    -The tab selected should load an xml file with the menu bar
    data.
    -I am only fetching two xml files at a time. The first xml
    data loaded contains the selection categories with the
    corresponding tab headings as child elements.
    -Each xml tab element contains a url path to the
    corresponding xml file containing the menu data. - this is to keep
    from having to load a large file, but the data could be
    consolidated into one file if needed. *this used to be the case,
    all data in one file. I had about five or so Nested datasets, but
    it didn't work, the menu bar submenus wouldn't update.
    I've been struggling with this for a while and have tried so
    many ways to get the data to load properly.
    I've gone in so many circles trying to add observers and
    url/xpath updater's and come very close, but have not been
    successful. Adding an observer to the datasets will get some to of
    the data to concatenate but not at every step.
    I have stripped down the code to the basis from where i
    started, meaning not much works. The form select, tabbed menu, and
    menu bar are set up exactly like the samples.
    links to all the files:
    HTML file -
    http://mimayes.com/nav/globalnav.html
    XML1 Categories and Tabs -
    http://mimayes.com/nav/globalnav.xml
    XML 2 Menu Data should load on tab selection -
    http://mimayes.com/nav/menu.xml
    I hope someone out there is able to help me please! I may be
    in over my head on this, but Spry is too cool.

    Use combine Similar Request by combining 5 requests
    In the first Request, in the column 1's fx, give the case statement as case when column 1 in(A,E) then 'A'  end
    and Rename the column 1 to Category
    Put the filter as Category is in or equal to A
    In the 2nd Request in the column 1's fx give the case statement as case when column 1 in(B,E) then 'B'  end
    and Rename the column 1 to Category
    Put the filter as Category is in or equal to B
    Similarly for C, D
    For E No need of changing the column 1's fx
    just put the filter as Column 1 is in or equal to 'E'
    Hope this solves...

  • Use Spry to insert data into a database?

    I'm new to Spry, so I have a question:
    Can I use Spry to insert data into a MySQL database without
    reloading the site?
    Reading data from XML file works fine, but I don't know if
    writing is possible..

    I don't get it... I tried this:
    <script type="text/javascript" src="spry/xpath.js"
    /></script>
    <script type="text/javascript" src="spry/SpryData.js"
    /></script>
    <script type="text/javascript">
    /* <![CDATA[ */
    function subscribe() {
    var subscribe;
    var info =
    document.getElementById("subscription_info").value;
    if (document.getElementsByName("subscription")[0].checked ==
    true) {
    subscribe = "ja";
    else {
    subscribe = "nein";
    var dsSubscribe = new
    Spry.Data.XMLDataSet("include/inc_subscribe.php?subscribe="+subscribe+"&info="+info+"&sit e=<?=$_GET['site'];?>",
    "subscription/ok");
    /* ]]> */
    </script>
    <div id="infos">
    <input type="radio" name="subscription" value="ja" />
    dabei
    <input type="radio" name="subscription" value="nein"
    /> nicht dabei
    <input type='text' class='text'
    id='subscription_info_text' />
    <input type='submit' id="subscription_submit"
    value='Eintragen' onClick="subscribe()" />
    </div>
    But the data isn't inserted into the mysql database. When I
    start the php script directly, it works, so I think it's not a php
    problem.

  • Spry Menu Using Nested XML Dataset (Spry 1.6)

    I have a vertical menu with a few items. One of which is
    labeled Products which has submenus. I want to have that submenu
    read from a Nested XML dataset. Using a single dataset for one
    level in a menu is easy enough, but the subenu will have submenus.
    Example Menu:
    Home
    Company
    Products
    |-- Product 1
    |-- Item 1
    |-- Item 2
    |-- Item 3
    |-- Product 2
    |-- Item 1
    |-- Item 2
    |-- Product 3
    |-- Item 1
    |-- Item 2
    |-- Item 3
    |-- Item 4
    |-- Product 4
    |-- Item 1
    |-- Item 2
    |-- Product 5
    I have been looking for an easy way to use the Spry Nested
    XML Dataset to create the Product/Item menu. The number of Products
    may vary as well as the number of Items in each Product submenu
    (also, some Products may not have Items).
    I already have an ASP page that creates the XML data from a
    database.
    Schema follows (XSD ):
    <?xml version="1.0" encoding="utf-8"?>
    <xsd:schema xmlns:xsd="
    http://www.w3.org/2001/XMLSchema">
    <xsd:element name="products">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="product_type"
    maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="type_name" maxOccurs="1"
    type="xsd:string"/>
    <xsd:element name="type_url" maxOccurs="1"
    type="xsd:anyURI"/>
    <xsd:element name="product_name"
    maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="item_name" maxOccurs="1"
    type="xsd:string"/>
    <xsd:element name="item_url" maxOccurs="1"
    type="xsd:anyURI"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    I have been programming for 17 years but am new to Spry. If
    this cannot be done easily with the Spry framework, I'll probably
    wind up splitting the XML data into 2 files (Products and Items)
    then writing a nested loop and call each by row, but then I have to
    find out how Spry Datasets reference XML data. Figuring out how to
    call rows from the XML data shouldn't be so bad, but this method
    just seems like such a hassle for something that should be easy.
    Pseudocode follows:
    j=1
    i=1 to TotalNumberProducts
    display Product i from Products
    ItemsExist=true
    While ItemsExist
    if j > TotalNumberItems | Item j is not for Product then
    ItemsExist=false
    else
    display Item j from Items
    j++
    Wend
    Next
    Thanks in advance for any help or direction!

    That's exactly what I'm trying to do. However, I implemented
    that code and the submenus won't appear. I suspect the submenus
    aren't finding the field names from the Nested XML Dataset. The
    first level of Product menus work great (this is a submenu of the
    overall menu) and correctly identify products that do not have
    submenus, so I know it's picking up the number of records in the
    Nested Dataset correctly - it just won't display the data in the
    next level of menu.
    variable and script declarations:
    <script src="SpryAssets/SpryMenuBar.js"
    type="text/javascript"></script>
    <script src="SpryAssets/xpath.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js"
    type="text/javascript"></script>
    <script src="SpryAssets/SpryNestedXMLDataSet.js"
    type="text/javascript"></script>
    <link href="SpryAssets/SpryMenuBarVertical.css"
    rel="stylesheet" type="text/css">
    <script type="text/javascript">
    <!--
    var productMenuData = new
    Spry.Data.XMLDataSet("products.asp", "products/product_type");
    var productMenuDataItems = new
    Spry.Data.NestedXMLDataSet(productMenuData, "product_name");
    //-->
    </script>
    Code for menus:
    <ul id="NavMenu" class="MenuBarVertical">
    <li><a
    href="index.html">Home</a></li>
    <li><a
    href="company.html">Company</a></li>
    <li><a href="franco_giberti.html">Franco
    Giberti</a></li>
    <li><a class="MenuBarItemSubmenu"
    href="products.asp">Products</a>
    <ul spry:region="productMenuData
    productMenuDataItems">
    <li spry:repeat="productMenuData"><a
    class="MenuBarItemSubmenu" href="{type_url}"
    spry:if="{productMenuDataItems::ds_RowCount} !=
    0">{type_name}</a> <a href="{type_url}"
    spry:if="{productMenuDataItems::ds_RowCount} ==
    0">{type_name}</a>
    <ul spry:if="{productMenuDataItems::ds_RowCount} !=
    0">
    <li spry:repeat="productMenuDataItems"><a
    href="{productMenuDataItems::item_url}">{productMenuDataItems::item_name}</a></li>
    </ul>
    </li>
    </ul>
    </li>
    <li><a href="contact.html">Contact Us</a>
    <!-- end #sidebar1 -->
    </li>
    </ul>
    XML:
    <products
    xsi:noNameSpaceSchemaLocation="products.xsd">

    <product_type>
    <type_name>Pasta Sauce</type_name>
    <type_url>pt_2.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_3.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_4.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_5.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_6.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_7.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_8.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Olive Oil</type_name>
    <type_url>pt_3.asp</type_url>

    <product_name>
    <item_name>Original</item_name>
    <item_url>pn_9.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil</item_name>
    <item_url>pn_10.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Herbs</item_name>
    <item_url>pn_11.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Sun Dried Tomato</item_name>
    <item_url>pn_12.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Spreads</type_name>
    <type_url>pt_4.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_13.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_14.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_15.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_16.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_17.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_18.asp</item_url>
    </product_name>
    </product_type>
    +
    <product_type>
    <type_name>Organic Grilled Vegetables</type_name>
    <type_url>pt_5.asp</type_url>

    <product_name>
    <item_name>Putenesca</item_name>
    <item_url>pn_19.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Arrabiata</item_name>
    <item_url>pn_20.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Pesto</item_name>
    <item_url>pn_21.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Basil and Tomato</item_name>
    <item_url>pn_22.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Bolognese</item_name>
    <item_url>pn_23.asp</item_url>
    </product_name>

    <product_name>
    <item_name>Carboniera</item_name>
    <item_url>pn_24.asp</item_url>
    </product_name>
    </product_type>

    <product_type>
    <type_name>Truffle Products</type_name>
    <type_url>pt_6.asp</type_url>
    </product_type>
    </products>
    Any further guidance would be very much appreciated!

  • Submitting a Form in a Spry Tabbed Region

    I have a spry tabbed region with 6 tabs.
    I have constructed a menu which targets and opens the specific tab using the ?tab=4 type notation.  I have also created links between tabs using the same notation.  All works fine.
    I have a form in one tab which, when I submit it, I want to return to the same tab.  However when I use the notation <form action="index.php?tab=4" > the page just reloads on the first tab, stripping off the ?tab=4 part of the url. I have searched the forums but can't find any reference to how to target a specific tab when submitting a form.
    Any help much appreciated.
    Thanks
    John

    Hi
    Thanks for your patience.
    Because there are 8 tabs on this page there is a lot of code, much of it irrelevant, so I have copied below the chunks which relate to this part of the page.
    When the form is submitted the data being returned from the database is correct and is loaded into the page. It is just that the page loads the first tab and you then have to click on the 'Results' tab to see the data which has been returned.
    Ok, from the top of the page the php code which filters the recordset is as follows;
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    // recordset for results
    $var1_rsCompResults = "-1";
    if (isset($_GET["event_ID"])) {
      $var1_rsCompResults = $_GET["event_ID"];
    $var2_rsCompResults = "-1";
    if (isset($_GET["age_group"])) {
      $var2_rsCompResults = $_GET["age_group"];
    $var3_rsCompResults = "-1";
    if (isset($_GET["gender"])) {
      $var3_rsCompResults = $_GET["gender"];
    mysql_select_db($database_connPublic, $connPublic);
    $query_rsCompResults = sprintf("SELECT tblResults.result_ID, DATE_FORMAT(tblEvents.event_start_date, '%%Y') AS year, tblResults.event_ID, tblEvents.event_name, tblResults.age_group, tblResults.points, tblIndividuals.forename, tblIndividuals.surname, tblIndividuals.sex FROM tblEvents INNER JOIN tblResults ON tblEvents.event_id = tblResults.event_ID INNER JOIN tblIndividuals ON tblResults.individual_ID = tblIndividuals.individual_id WHERE tblResults.event_ID = %s AND age_group = %s AND sex = %s ORDER BY tblResults.points", GetSQLValueString($var1_rsCompResults, "int"),GetSQLValueString($var2_rsCompResults, "text"),GetSQLValueString($var3_rsCompResults, "text"));
    $rsCompResults = mysql_query($query_rsCompResults, $connPublic) or die(mysql_error());
    $row_rsCompResults = mysql_fetch_assoc($rsCompResults);
    $totalRows_rsCompResults = mysql_num_rows($rsCompResults);
    ?>
    then the links to the Spry Assets and the  js which creates the datasets is as follows;
    <script src="../SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryURLUtils.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryData.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryDataExtensions.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryHTMLDataSet.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryNestedXMLDataSet.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryXML.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <script src="../SpryAssets/SpryPagedView.js" type="text/javascript"></script>
    <script src="../SpryAssets/xpath.js" type="text/javascript"></script>
    <script type="text/javascript">
    var dsYears = new Spry.Data.XMLDataSet("competitions_year_data_xml.php", "root/row");
    var dsCompetitions = new Spry.Data.XMLDataSet("calendar_competitions_data_xml.php", "root/row[year = '{dsYears::year}']");
    var dsAgeGroups = new Spry.Data.XMLDataSet("competitions_age_group_data_xml.php", "root/row[event_ID = '{dsCompetitions::event_ID}']");
    var dsGender = new Spry.Data.XMLDataSet("competitions_sex_data_xml.php", "root/row[age_group = '{dsAgeGroups::age_group}']");
    </script>
    Then the html which creates the tabbed region is as follows;
                      <div id="TabbedPanels1" class="TabbedPanels">
                          <ul class="TabbedPanelsTabGroup">
                            <li class="TabbedPanelsTabLeft" tabindex="0">News</li>
                            <li class="TabbedPanelsTab" tabindex="1">Calendar</li>
                            <li class="TabbedPanelsTab" tabindex="2">Rules</li>
                            <li class="TabbedPanelsTab" tabindex="3">Competition Entries</li>
                            <li class="TabbedPanelsTab" tabindex="4">Results</li>
                            <li class="TabbedPanelsTab" tabindex="5">Rankings</li>
                            <li class="TabbedPanelsTab" tabindex="6">Contacts</li>
                            <li class="TabbedPanelsTabRight" tabindex="7">FAQ</li>
                          </ul>
                          <div class="TabbedPanelsContentGroup">
    Then the form which includes the four select statements is as follows;
    <div class="TabbedPanelsContent" id ="results_data">
                   <h3>Results</h3>
    <form name="selectForm" action="index.php?tab=4&" method="get">
            Year:
    <span spry:region="dsYears" id="yearSelector">
            <select spry:repeatchildren="dsYears" spry:choose="spry:choose" name="year" onchange="dsYears.setCurrentRowNumber(this.selectedIndex);">
                <option value="{year}" spry:when="{ds_CurrentRowID} == {ds_RowID}" selected="selected">{year}</option>
                <option value="{year}" spry:default="spry:default" >{year}</option>
            </select>
    </span>
            Event:
    <span spry:region="dsCompetitions" id="eventSelector">
            <select spry:repeatchildren="dsCompetitions" name="event_ID" onchange="dsCompetitions.setCurrentRowNumber(this.selectedIndex);">
                <option value="{event_ID}">{event_name}</option>
            </select>
    </span>
            Age Groups:
    <span spry:region="dsAgeGroups" id="agegroupSelector">
            <select spry:repeatchildren="dsAgeGroups" name="age_group" onchange="dsAgeGroups.setCurrentRowNumber(this.selectedIndex);">
                <option value="{age_group}">{age_group}</option>
            </select>
    </span>
            Gender:
    <span spry:region="dsGender" id="genderSelector">
            <select spry:repeatchildren="dsGender" name="gender">
                <option value="{sex}">{sex}</option>
            </select>
    </span>
    <input type="submit" value="Submit" />
    </form>
    <?php if ($totalRows_rsCompResults > 0) { // Show if recordset not empty ?>
      <div id="result_ID" name="result_ID">
        <table>
          <tr>
            <th>Athlete Name</th>
            <th>Event</th>
            <th>Score</th>
          </tr>
          <?php do { ?>
            <tr>
              <td><?php echo $row_rsCompResults['forename']; ?> <?php echo $row_rsCompResults['surname']; ?></td>
              <td><?php echo $row_rsCompResults['event_name']; ?></td>
              <td><?php echo $row_rsCompResults['points']; ?></td>
            </tr>
            <?php } while ($row_rsCompResults = mysql_fetch_assoc($rsCompResults)); ?>
        </table>
      </div>
      <?php } // Show if recordset not empty ?>
           </div> <!-- end of TabbedPanelsContent div Results -->
    Then at the end of the page is this code;
    <script type="text/javascript">
    var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1", {defaultTab: params.tab ? params.tab : 0});
    </script>
    </body>
    </html>
    <?php
    mysql_free_result($rsCompResults);
    ?> 

  • Adding a URL parameter to the path to spry XMLdataset

    anyone know an easy way to code this one.
    I can pull in xml and do what ever I want with it, but I want to pull in an XML page that is generated with the URL parameters of the current page
    so  instead of
    var ds1 = new Spry.Data.XMLDataSet("my_XML.php", "export/row",{useCache:false,loadInterval:2000});
    i'd like the url to include the params of the current page
    in php something like "my_XML.php?jobnumber=".$var1."&version=".$var2 ;
    where var1 and var2 are URL params of the current page URL
    I'm guessing I need to create the javascript equivalent to var ds1 = new Spry.Data.XMLDataSet("my_XML.php",  etc
    but I've got no idea what that might be
    anyone help??

    And Spry version where the URL is myfile.html?file=employees
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Untitled Document</title>
    <script src="SpryAssets/xpath.js"></script>
    <script src="SpryAssets/SpryData.js"></script>
    <script src="SpryAssets/SpryURLUtils.js"></script>
    <link href="SpryAssets/SpryMasterDetail.css" rel="stylesheet">
    <script type="text/javascript">
    var params = Spry.Utils.getLocationParamsAsObject();
    var ds1 = new Spry.Data.XMLDataSet(params.file+".xml", "employees/employee");
    </script>
    <body>
    <div class="MasterDetail">
      <div spry:region="ds1" class="MasterContainer">
        <div class="MasterColumn" spry:repeat="ds1" spry:setrow="ds1" spry:hover="MasterColumnHover" spry:select="MasterColumnSelected">{firstname}<br />
        {lastname}</div>
      </div>
      <div spry:detailregion="ds1" class="DetailContainer">
        <div class="DetailColumn">{firstname}</div>
        <div class="DetailColumn">{lastname}</div>
        <div class="DetailColumn">{joinDate}</div>
      </div>
      <br style="clear:both" />
    </div>
    </body>
    </html>
    The URL parameters can be adjusted to suit.
    Gramps

Maybe you are looking for

  • New to apple, question about font sizes on show bookmarks pages

    Former windows user, trying to get used to this beautiful new imac! When I am on the safari page, in the show all bookmarks page, the font is so small, and buttons to increase the size are disabled on the page! I know there must be a way to make the

  • MDT 2013 deploying OS from USB Flashdrive failed - need to click OK everytime

    We are using MDT 2013 with ADK 8.1 and deploying Windows 7 x64 using media (USB Flashdrive). We can successfully deploy Windows 7 x64b using ethernet cabel but not via USB-Flashdrive. This problem appears on all our HP EliteBook Series, old as new co

  • Puzzle: TRY_CAST in Azure SQL, TRY_CONVERT in SS 2012?

    For a while I thought Azure SQL T-SQL is a subset of SQL Server 2012 T-SQL. Not so.... It has its own individuality! Related blog: http://raresql.com/category/sql-server-2012/built-in-functions/conversion-function/ Kalman Toth Database & OLAP Archite

  • MacBook Pro i5 1600MHz RAM!

    Here guys, just wanted to show you that my MacBook has 16GB RAM @1600MHz on a late 2011 i5 and is working fine!

  • Can multiple BT stacks co-exist?

    Hi Just to clarify. when using PC Suite 6.82 in XP SP2 notebook, can we have both Ms BT stack and WIDCOMM stack loaded? Details as below:- Operating system: Microsoft Windows XP Build 2600 Service Pack 2 Language: English Language for non-Unicode pro