I have the following html
<html>
<head>
<title>Voucher Usage</title>
<script language="JavaScript" type="text/javascript" src="js/voucher.js"></script>
</head>
<body onLoad="document.VU.Number.focus()">
<form name="VU" id="VU" method="post" >
Voucher Number: <input type="text" size="20" maxlength="20" id="Number" name="Number" onChange='submit_click(this.value)'><br />
<center>
<div id="loadingNode"></div>
</center>
</body>
</html>
<script language=javascript>
function submit_click(VoucherNumber)
{
if ((VoucherNumber[0] == ";") && (VoucherNumber[strlen(VoucherNumber) -1] == "?"))
{
VoucherNumber.substr(1,(strlen(VoucherNumber) - 2));
}
progExe("voucher.php?Number=" + VoucherNumber);
}
</script>
and my Ajax/javascript looks like :-
function getXMLHttpRequest ()
{
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {};
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {};
try { return new XMLHttpRequest(); } catch(e) {};
return null;
}
// Make the XMLHttpRequest object
var xhr = getXMLHttpRequest();
// setTimeout(progExe(),500);
function progExe(CommandString)
{
// alert("CommandString = " + CommandString);
xhr.open("GET", CommandString, true);
xhr.onreadystatechange = ServerResponse;
xhr.send(null);
}
function ServerResponse()
{
// alert("entered ServerResponse()");
/* The full list of the readyState values is as follows:
* 0 (uninitialized)
* 1 (loading)
* 2 (loaded)
* 3 (interactive)
* 4 (complete)
*/
if(xhr.readyState == 0)
{
document.getElementById("loadingNode").innerHTML = "Uninitialized........";
}
else
if(xhr.readyState == 1)
{
document.getElementById("loadingNode").innerHTML = "Loading........";
}
else
if(xhr.readyState == 2)
{
document.getElementById("loadingNode").innerHTML = "Loaded........";
}
else
if(xhr.readyState == 3)
{
document.getElementById("loadingNode").innerHTML = "Interactive........";
}
else
if(xhr.readyState == 4)
{
if (xhr.status == 200)
{
alert(xhr.responseText);
}
else
{
alert(xhr.status + " Text= " + xhr.responseText + " XML= " + xhr.responseXML);
}
}
}
and the php is :-
<?php
require_once('includes/configuration.php'); // database connect script & the rest.
$Message = "";
if (empty($_GET["Number"]))
{
$Message .= "Invalid voucher number!";
}
else
{
DBConnect(); // Connect to Events database
$VoucherNum = $_GET["Number"];
$SQL = 'SELECT * FROM Voucher WHERE Number='.$VoucherNum;
$rs = mssql_query($SQL, $link);
$Count = 0;
while ($row = mssql_fetch_array($rs))
{
$EventName = $row['Number'];
$Datum = $row['DatePresented'];
$Message .= "Number ".$EventName." previously processed on ".$Datum;
++$Count;
}
if ($Count == 0)
{
$Datum = date("Y-m-d H:i:s"); /* 2006-03-17 23:22:32 */
$SQL = sprintf("INSERT INTO Voucher(Number, DatePresented) VALUES ('%s','%s')",$VoucherNum, $Datum);
$rs = mssql_query($SQL, $link);
$Message .= "Number ".$EventName." successfully registered on ".$Datum;
}
DBDisConnect(); // Disconnect from Events database
}
echo $Message;
return $Message;
?>
All very simple stuff really. But what is beating me is that the response I get when the above is run is:-
0 Text= XML= null
from the last alert in the javascript file.
Why would the response be 0 rather than 200?
This especially as xhr.readyState == 4.
Please tell me what I have done wrong.