Zakupiłem książkę "AJAX i PHP tworzenie interaktywnych aplikacji internetowych", wszystko szło wspaniale do czasu natrafienia na dość oporny przykład a mianowicie, chciałbym aby server wyświetlił zawartość pliku XML zgodnie z przykładem w książce, jednak po przepisaniu przykładu oraz dwukrotnym sprawdzeniu kodu nadal nie widać efektów, być może któryś z bardziej doświadczonych użytkowników mógłby spojrzeć na to fachowym okiem, oto pliki jakie wchodzą w grę
books.html
[code]
Serverze, jakie sa twoje ulubione ksiazki?
books.js
[code]
//Przechowuje obiekt klasy XMLHttpResponse
var xmlHttp = createXmlHttpRequestObject();
//Tworzy obiekt klasy XMLHttpRequest
function createXmlHttpRequestObject()
{
//Bedzie przechowywac odwolanie do obiektu klasy XMLHttpRequest
var = xmlHttp;
//Tworzy obiekt klasy XMLHttpRequest
try{
//Przy zalozeniu ze strona otwierana jest w IE7 lub nowszej
xmlHttp = new XMLHttpRequest();
}
catch (e){
//IE6 lub starszej
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
}
catch(e){
}
}
//Zwraca utworzony obiekt lub wyswietla komunikat o bledzie
if(!xmlHttp)
alert("podczas tworzenia obiektu klasy XMLHttpRequest wystapil blad.");
else
return xmlHttp;
}
//Odczytuje zawartosc pliku xml umieszczonego na serverze
function process()
{
//Kontynuuje tylko gdy obiekt xml zostal utworzony
if(xmlHttp)
{
//Proboje nawiazac polaczenie z serverem
try{
//Inicjuje odczyt pliku z servera
xmlHttp.open("GET", "books.xml", true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
}
catch(e){
alert("Nie udalo sie nawiazac polaczenia z serverem:\n"+e.toString();
}
}
}
//Funkcja wywolana po zmianie statusu zadania HTTP
function handleRequestStateChange()
{
//Gdy metoda readyState zwraca wartosc 4, odczytuje odpowiedz z servera
if(xmlHttp.readyState == 4)
{
try{
//przetwarza odpowiedz nadeslana z servera
handleServerResponse();
}
catch(e){
//Wyswietla komunikat o bledzie
alert("Blad podczas odczytywania odpowiedzi: "+ e.toString());
}
}
else{
//wyswietla wiadomosc okreslajaca status zadania
alert("podczas pobierania danych wystapil blad:\n"+xmlHttp.statusText;
}
}
//Funkcja obslugujaca odpowiedz servera
function handleServerResponse()
{
//odczytuje wiadomosc wyslana przez Server
var xmlResponse = xmlHttp.responseXML;
//pobiera glowny znacznik dokumentu XML
xmlroot = xmlResponse.documentElement;
//Pobiera tablice zawierajace tytul ksiazek i ich numery ISBN
titleArray = xmlRoot.getElementByTagName("title");
isbnArray = xmlRoot.getElementByTagName("isbn");
//generuje odpowiedz w formacie HTML
var html = "";
//Iteracyjnie sprawdza wszystkie elementy tablicy i generuje kod HTML
for (var i = 0; i<titleArray.lenght; i++)
html += titleArray.item(i).firstChild.data + ", " + isbnArray.item(i).firstChild.data + "
";
//Pobiera odwolanie do znacznika
myDiv = document.getElementById("myDivElement");
//wyswietla dane
myDiv.innerHTML = "
Server mowi:
" + html;}
[/code]</p>
oraz books.xml
[code]
Proszę o szybką odpowiedź, z góry dziękuje
Eldiane
//Edit
Zauważyłęm błąd w znaczniku <response> ... </response> został poprawiony lecz błąd występuje nadal