Knowledge Base Nr: 00258 ajax.txt - http://www.swe-kaiser.de

Downloads:

AJAX: asynchrone abfrage von serverdaten und aktualisieren der darstellung ohne die komplette webseite neu zu laden

  
der code der die browserabhängigkeiten kapselt (zxml.js) ist dem wrox-buch 'professional ajax' entnommen.

################################################################
### k_ajax.htm ruft asynchron php script auf

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>XMLHttp Example 1</title>
<script type="text/javascript"src="zxml.js"></script>

<script type="text/javascript">
function requestCustomerInfo()
{
var nSleep = document.getElementById("sleep").value;
var sColor = document.getElementById("color").value;
var oXmlHttp = zXmlHttp.createRequest();
oXmlHttp.open("get", "k_ajax.php3?sleep=" + nSleep + "&color=" + sColor, true);
oXmlHttp.onreadystatechange = function ()
{
if (oXmlHttp.readyState == 4)
{
if (oXmlHttp.status == 200)
{
displayCustomerInfo(oXmlHttp.responseText, sColor);
}
else
{
displayCustomerInfo("An error occurred: " + oXmlHttp.statusText, "red"); //statusText is not always accurate
}
}
};
oXmlHttp.send(null);
}

function displayCustomerInfo(sText, sColor)
{
var divCustomerInfo = document.getElementById("divCustomerInfo");
divCustomerInfo.innerHTML = sText;
divCustomerInfo.style.backgroundColor = sColor;
}
</script>

</head>
<body>
<p>Nach Drücken des Buttons wird ein PHP-Script asynchron aufgerufen und das Ergebnis hier <div id="divCustomerInfo"></div> angezeigt.</p>
<p>Verzögerung: <input type="text" id="sleep" value="0" />(timeout wenn werte > 30s)</p>
<p>Farbe: <input type="text" id="color" value="red" /> (red, green, blue, yellow,...)</p>
<p><input type="button" value="ajax" onclick="requestCustomerInfo()" /></p>
</body>
</html>

################################################################
### k_ajax.php3 script gibt einen string zurück
<?
header("Pragma: no-cache");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");

sleep($sleep);

echo(strftime("%d.%m.%Y %H:%M:%S sleep=$sleep color=$color", strtotime("now")));
?>