Zit met een probleem waar ik eigenlijk niet precies van weet waarop ik moet zoeken. Ik heb onderstaand script in index_rand.php:

<?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ajax - PHP example</title>
</head>

<body>

<script language="javascript" type="text/javascript">
<!--


function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}


function setOutput(){
if(httpObject.readyState == 4){
document.getElementById('nummerbox').innerHTML = httpObject.responseText;

}

}


function getNummer(){
httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("GET", 'judel.php', true);
httpObject.send(null);
httpObject.onreadystatechange = setOutput;
}

}

var httpObject = null;
//-->
</script>
<input type="text" onkeyup="getNummer();">
<div id="nummerbox">
Judel_number
</div>
</body>
</html>
?>

in judel.php staat het volgende:

<?php
$number = rand(300, 700);
echo $number;
?>

Nu is mijn probleem dat bij de eerste letter die ik in de input typ, ik een willekeurig getal krijg van judel.php. Echter bij de 2e, 3e, 4e en verdere keyups, blijft hetzelfde getal erin staan. Hij pakt hem maar 1 keer.

Weet iemand waardoor dit komt of waar ik precies op moet zoeken?
Wilde nog iets dergelijks met jquery proberen, echter kreeg ik hetzelfde resultaat. Eerste keer haalt hij het op, en bij een refresh met f5 of ctrl+f5 blijft hetzelfde nummer staan, terwijl ik een nieuwe random nummber verwacht uit judel.php...
<?php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">;
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>


<script>
$(document).ready(function(){
$("#number").load("judel.php");
});
</script>
<style>body{ font-size: 11px; font-family: Arial; }</style>
</head>
<body>
<b>test:</b>
<div id="number"></div>
</body>
</html>
?>

Even de bump-melding verwijderd en hieronder mijn gevonden oplossing geplaatst:

In de eerste post staat
<?php
httpObject.open("GET", 'judel.php', true);
?>

Dit moet zijn:
<?php
httpObject.open("POST", 'judel.php', true);
?>

Zonder php tags uiteraard. Nu maakt judel.php geen gebruik post en/of get waarden, maar blijkbaar is het dus wel nodig dat hij op POST staat. Nu alleen nog uitzoekn waarom dit zo is :)

Reageren