Hallo,
ich habe ein Problem mit einem Ajax-Script. Das Script sendet den Request an ein PHP-Script, dass den Wert speichert.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="robots" content="follow" />
<script type="text/javascript">
var request = false;
try {
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
function getCustomerInfo() {
var phone = document.getElementById("phone").value;
var url = "writephone.php?phone=" + escape(phone);
request.open("GET", url, true); //true bedeutet asynchron
request.onreadystatechange = updatePage; //onreadystatechange = callback
request.send(null);
}
function updatePage() {
if (request.readyState == 4)
if (request.status == 200)
alert("Server is done!");
else if (request.status == 404)
alert("Request URL does not exist");
else
alert("Error: status code is " + request.status);
}
</script>
<title>Ajax-Test</title>
</head>
<body>
<form method="post">
<p>Enter your phone number:
<input type="text" size="14" name="phone" id="phone"
onChange="getCustomerInfo();" />
</p>
<p>Your order will be delivered to:</p>
<p>Type your order in here:</p>
<p><textarea name="order" rows="6" cols="50" id="order"></textarea></p>
<p><input type="submit" value="Order Pizza" id="submit" /></p>
</form>
</body>
</html>
Das ist das PHP-Script, dass die Daten verarbeitet:
<?php
if (isset($_REQUEST['phone'])) {
$phone = $_REQUEST['phone'];
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, "$phone\n");
fclose($fh);
}
?>
Wenn ich das Script für einige Zeit in Ruhe lasse, und dann eine Eingabe senden will, antwortet der Server mit Request-Status 0. Wieso ist das so?
Wenn ich es gleich darauf wieder ausprobiere, funktioniert es wieder. Woran liegt das?
Markus