oto pliki jakie posiadam:
index.html
<!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"> <html> <head> </head> <body onload='process()'> server pragnie poznac twoje imie: <input type="text" id="myName" /> <div id="divMessage" /> </body> </html>
quickstart.js
//przechowuje odwolanie do obiektu XMLHttpRequest. var xmlhttp = createXmlHttpRequestObject(); //Odzyskuje zawartosc obiektu XMLHttpRequest. function createXmlHttpRequestObject() { //przechowuje odwolanie do obiektu XmlHttpRequest var xmlHttp; //Fragment kodu uruchamiany w przegladarce IE6 lub jej starszych wersjach if(window.ActiveXObject) { try{ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { xmlHttp = false; { } //Fragment uruchamiany w przegladarkach innych niz IE6 else { try{ xmlHttp = new XMLHttpRequest(); } catch(e){ xmlHttp = false; } } //Zwraca zawartosc utworzonego obiektu lub wysyla komunikat o bledzie if(!xmlHttp) alert("blad podczas proby utworzenia obiektu XMLHttpRequest"); else return xmlHttp; } function process() { //Kontynuuje tylko w przypadku gdy obiekt xmlHttpRequest nie jest zajety if(xmlHttp.readyState == 4 || xmlHttp.readyState == 0) { //Pobiera imie podane przez uzytkownika w formularzu name = encodeURIComponent(document.getElementById("myName").value); //wykonuje kod strony quickstart.php po stronie servera xmlHttp.open("GET", "quickstart.php?name=" +name, true); //definiuje metode ktora obsluzy odpowiedzi servera xmlHttp.onreadystatechange = handleServerResponse; //Wysylanie zadania do servera xmlHttp.send(NULL); } else //Jesli polaczenie nie jest mozliwe ponawia probe po 1 s setTimeout('process()',1000); } function handleServerResponse() { //kontynuuje tylko jesli translakcja klient-server zostala ukonczona if(xmlHttp.readyState == 4) { //Status transakcji 200 oznacza ze zostala ona zakonczona powodzeniem if(xmlHttp.status == 200) { //Pobiera kod XML zawarty w odpowiedzi servera xmlResponse = xmlHttp.responseXML; //wybiera ze struktury XML glowny znacznik dokumentu (root element) xmlDocumentElement = xmlResponse.documentElement; //pobiera wiadomosc tekstowa umieszczona w pierwszym dziecku znacznika dokumentu hellomessage = xmlDocumentElement.firstChild.data; //Wyswietla dane pobrane z servera //ponawia proces setTimeout('process()', 1000); } //Status zadania HTTP inny niz 200 powoduje wyswietlenie komunikatu o bledzie else { alert("Nie udalo sie nawiazac polaczenia z serverem: " + xmlHttp.statusText); } } }
oraz quickstart.php
<?php //Stworzy odpowiedz z servera w postaci XML //Tworzy naglowek pliku XML //Tworzy znacznik <response> //pobiera imie podane przez uzytkownika $name = $_GET['name']; //Generuje odpowiedz w zaleznosci od imienia przeslanego przez klienta else //Zamyka znacznik </response> ?>
Byłbym bardzo wdzięczny za wskazanie błędu jaki popełniam, być może to literówka, chodź sprawdzałem 2x i wszystko wydaje się być wporządku.
Z góry dziękuje, Eldiane