日期:2014-05-16 浏览次数:20809 次
<!DOCTYPE html>
<html>
<head>
<title>Practical AJAX: PHP Parameters and Error Handling</title>
<script type="text/javascript" src="morephp.js"></script>
</head>
<body>
Ask server to divide
<input type="text" id ="firstNumber" />
by
<input type="text" id ="secondNumber" />
<input type="button" value="Send" onclick="process()" />
<div id="myDivElement" />
</body>
</html>
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP"
"Microsoft.XMLHTTP");
for ( var i=0;i<XmlHttpVersions.length && !xmlHttp;i++)
{
try
{
xmlHttp = new ActiveXobject(XmlHttpVersions[i]);
}
catch(e) {}
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else
return xmlHttp;
}
function process()
{
if (xmlHttp)
{
try
{
var firstNumber = document.getElementById("firstNumber").value;
var secondNumber = document.getElementById("secondNumber").value;
var params = "firstNumber=" + firstNumber +
"&secondNumber=" + secondNumber;
xmlHttp.open("GET","morephp.php?" =params, true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
}
catch (e)
{
alert("Can't connect to server:\n" + e.toString());
}
}
}
function handleRequestStateChange()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.readyState == 200)
{
try
{
handleServerResponse();
}
catch(e)
{
alert("Error reading the response:" + e.toString());
}
}
else
{
alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);
}
}
}
function handleServerResponse()
{
var xmlResponse = xmlHttp.responseXML;
if (!xmlResponse || !xmlResponse.documentElement)
throw("Invalid XML structure:\n" + xmlHttp.responseText);
var rootNodeName = xmlResponse.documentElement.nodeName;
if (rootNodeName == "parsererror")
throw("Invalid XML structrue:\n" +xmlHttp.responseText);
xmlRoot = xmlResponse.documentElement;
if (rootNodeName != "response" || !xmlRoot.firstChild)
throw("Invalid XML structure:\n" + xmlHttp.responseText);
responseText = xmlRoot.firstChild.data;
myDiv = document.getElementById("myDivElement");
myDiv.innerHTML = "Server Says the answer is : " +responseText;
}
<?php
require_once('error_handler.php');
header('Content-Type: text/xml');
$firstNumber =