Ciao a tutti. Sto cercando di imparare a usare ajax. Creando il mio sito mi sono trovato di fronte a questo problema: vorrei caricare dei contenuti da un database xml al div della mia pagina principale in maniera dinamica (quando l'utente clicca su una voce del menu). Mi sembrava di aver capito che la soluzione ottimale fosse quella che utilizza ajax, ma al momento di caricare il contenuto lo script carica solo l'html semplice senza accedere al file xml.
Questa è la pagina che vorrei caricare:
<html>
<head>
<script type="text/javascript" src="loadXMLDoc.js"></script>
</head>
<body>
<h2>Titolo</h2>
<script type="text/javascript">
xmlDoc=loadXMLDoc("database.xml");
x=xmlDoc.getElementsByTagName("riassunto")[0];
document.write(x.childNodes[0].nodeValue);
</script>
</body>
</html>
il risulatato è una pagina vuota con scritto "Titolo".
Lo script che uso è:
var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""
function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=pag e_request.responseText
}
function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!="xml/.."){
document.getElementsByTagName("head").item(0).appe ndChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}
dopodiche chiamo la pagina nel seguente modo:
[*]01
Secondo voi qual'è il problema?
Grazie anticipatamente