Ajax + XML + MySQL

B

bcochofel

Hi, I'm using Perl CGI and HTML::Template to generate the following
XML:
----------------------------------------------------------------------
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xml" href="RR.xsl"?>
<!-- $Id: template.xml,v 1.5 2006/12/11 11:13:30 bcochofel Exp $ -->
<RR
xmlns:xsi="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://cochofel.sytes.net
~bcochofel/iweb/files/RR.xsd">
<Request>
<url>/~bcochofel/iweb/cgi-bin/getmysites.cgi</url>
<session>
<user>[email protected]</user>
</session>
<query>
<!-- o campo parametro pode ter varias ocurrencias -->
<param name="sort" value="asc" />
<param name="field" value="" />
</query>
</Request>
<Response>
<sites>
<site url="http://www.google.com">
<tag name="pesquisa" weight="30" />
<tag name="procura" weight="30" />
</site>
<site url="http://www.google.com/webhp?complete=1">
<tag name="ajax" weight="25" />
<tag name="pesquisa" weight="30" />
<tag name="procura" weight="30" />
</site>
<site url="https://webmail.fe.up.pt">
<tag name="email" weight="20" />
<tag name="feup" weight="20" />
</site>
</sites>
</Response>
</RR>
--------------------------------------------------------------
The Response element gets information from a MySQL DB and this is only
an example.

I'm creating a XSL file to transform this XML output in XHTML with the
results in a table, something like:

----------------------
| URL | TAG | WEIGHT |
----------------------

One URL can have several TAGS. URL is an attribute of the element
site.

What I want his to let the client click on the table tittle (url, tag
or weight) to sort the elements using that field, if the elements are
already sorted with that field then the order is toogle (ascending
and descending).

I want to do this in the client side using Ajax but I can't figure out
how to do this. How can I get the XML elements without querying the
MySQL server again? Can I do this? Does javascript has some object to
retrieve XML elements like this?

I'm using CGI::Ajax, a Perl module, but if I use this I'll have to
querie MySQL server again to resort the elements (at least I think I
have to...)

Can someone point me out some kind of solution to this? I'm a newbie
in using Ajax and XML.

Thanks,
Bruno
 
B

bcochofel

Ok, I know I can use DOM to access the XML elements and attributes
(with var x=xmlDoc.getElementsByTagName("sites");)

I want to sort <site> by url, tag/weight (inside the <site>) using
Ajax.
How can I sort by tag name attribute or tag weight attr, childs of
<site>?
Can I sort my x var like this or do I have to do some kind of
manipulation?

I'm thinking of calling a function (inside an href on the table <th>
elements) an pass a parameter to tell witch <th> was clicked, using
onClick event. I need to toggle the sorting method if the same <th> has
clicked, changing from ascending to descending...

Can I use this?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,735
Latest member
HikmatRamazanov

Latest Threads

Top