Artykuły
Ilość wyświetleń: 2036 « powrót
uruchomienie przykładu [Ajax Test]
Odpowiedź w formacie tekstowym
Odpowiedź w formie tabeli - przetworzony xml
<?xml version="1.0" ?>
<root>
<item><name id="p1">produkt1</name><price>1.00</price></item>
<item><name>produkt2</name><price>2.00</price></item>
<item><name>produkt3</name><price>3.00</price></item>
<item><name>produkt4</name><price>4.00</price></item>
<item><name>produkt5</name><price>5.00</price></item>
</root>
<script type="text/javascript">
//
// funkcja tworzaca obiekt XMLHttpRequest zaleznie od przegladarki
function createRequestObject()
{
var request;
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer")
{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request = new XMLHttpRequest();
}
return (request);
}
var http = createRequestObject();
var responseXML;
// wyslanie zadania do serwera
function sendRequest()
{
http.onreadystatechange = handleResponse;
http.open("get", "/china1/ajax.xml", true);
http.send(null);
}
// funkcja obslugujaca odpowiedz
function handleResponse()
{
// jezeli odpowiedz kompletna
if (http.readyState == 4)
{
// tylko jezeli "OK"
if (http.status == 200)
{
// tutaj przetwarzanie otrzymanej odpowiedzi ...
// wstawienie odpowiedzi tekstowej
document.getElementById("answer").innerHTML = http.responseText;
// obsluga odpowiedzi xml
var xmlDoc = http.responseXML;
createTable(xmlDoc);
}
else
{
alert("Problem z odbiorem danych XML:\n" + http.statusText);
}
}
}
// tworzenie tabeli z obiektu xml
function createTable(xmlDoc)
{
var items = xmlDoc.getElementsByTagName("item");
var item;
var out = "";
out += "<table border=1>";
for (var i = 0; i < items.length; i++)
{
item = items[i];
nameItem = item.getElementsByTagName("name").item(0);
priceItem = item.getElementsByTagName("price").item(0);
out += "<tr><td>" + nameItem.childNodes[0].nodeValue;
out += "</td><td>" + priceItem.childNodes[0].nodeValue;
out += "</td></tr>";
}
out += "</table>";
document.getElementById("xmlanswer").innerHTML = out;
}
</script>
<a href="javascript:sendRequest()">[Ajax Test]</a>
<!-- bloki html'owe do wyswietlenia odpowiedzi -->
<div id="answer">
</div>
<div id="xmlanswer">
</div>
<!-- koniec -->