problemi con XMLHttpRequest e XML

joestorm212

Nuovo Utente
23 Mar 2010
6
0
0
Ciao a tutti sono di nuovo alle prese con problemi relativi al fantastico mondo di AJAX, questa volta ho tre file un xml un html e un js l'obbiettivo principale è quello di prendere informazioni dal file xml e stamparle a video(html), motore di tutto ciò il file in js. vi posto tutti e tre i file
1) il file html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1 //EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Le basi di AJAX: Javascript e XML</title>
<script type="text/javascript" src="books.js"></script>

</head>
<body onload="process()">
Server, dimmi quali sono i tuoi libri preferiti!!!XX
</br>
<div id="myDivElement"/>
</body>
</html>

2) il file books.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<books>
<book>
<title>
Bulding Responsive Web Applications with AJAX and PHP
</title>
<isbn>
1-904811-82-5
</isbn>
</book>
<book>
<title>
Beginning PHP and MYSQL E-Commerce: From novice ro Professional
</title>
<isbn>
1-59059-392-8
</isbn>
</book>
</books>
</response>
3) il file books.js
//creo l'istanza dell'oggetto xmlHttpRequest
var xmlHttp = createxmlHttpRequestObject();

function createxmlHttpRequestObject()
{
//memorizza il riferimento dell'oggetto xmlHttpRequest
var xmlHttp;
//x tutti i browser eccetto IE6
try
{
xmlHttp = new xmlHttpRequest();
}
catch( e )
{
var xmlHttpVersions = new Array('MSXML2.XMLHttp.6.0',
'MSXML2.XMLHttp.5.0', 'MSXML2.XMLHttp.4.0','MSXML2.XMLHttp.3.0',
'MSXML2.XMLHttp','Microsoft.XMLHttp');
//adesso provo tutti gli elementi dell'array finchè nn ne trovo quello giusto
for (var i=0; i < xmlHttpVersions.length && !xmlHttp; i ++)
{
try
{
xmlHttp = new ActivexObject(xmlHttpVersions);
}
catch( e ) {}

}
}
if( !xmlHttp )
alert("Err!!!!! during the creation xmlHttprequestObject");
else
return xmlHttp;
}
function process()
{
if( xmlHttp )
{
try
{
xmlHttp.open("GET", "books.xml", true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send( null );
}
catch( e )
{
alert("Err!!!! collegamento al server:\n" +e.toString());
}
}
}
function handleRequestStateChange()
{
//quando readystate è in posizione 4 siamo pronti per leggere la risposta
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
try
{
handleServerResponse();

}
catch( e )
{
alert("errore durante la lettura della risposta:"+ e.toString());
}
}
else
{
alert("Si sta verificando un errore sul server nella ricezione dei dati:\n" + xmlHttp.statusText);
}
}
}
//gestione risposta ricevuta dal server
function handleServerReponse()
{
var xmlResponse = xmlHttp.responseXML;
//otteniamo il documento radice dal file xml
xmlRoot = xmlResponse.documentElement;
//otteniamo gli array con i titoli dei libri e tutti gli altri dati
titleArray = xmlRoot.getElementsByTagName("title");
isbnArray = xmlRoot.getElementsByTagName("isbn");
//output HTML
var html="";
//iterazione degli elementi per l'output hml
for(var i=0; titleArray.length; i++)
html += titleArray.item( i ).firstChild.data +", "+isbnArray.item( i ).firstChild.data +"<br/>";
// otteniamo un riferimento all'elemento <div> della pagina
myDiv = document.getElementById ("myDivElement");
//mostriamo l'output in html
myDiv.innerHtml = "il server dice: <br/> " + html;
}
i file sono questi inutile dire che me li sono visti 300 volte ma nn riesco a venirne a capo, qualcuno sà dove è l'errore in cosa sbaglio???? Vi ringrazio in anticipo per la collaborazione. Ciao a tutti
 

Discussioni simili