Je travaille sur une simple page AJAX. lorsque la page se charge, elle devrait prendre le résultat de la page PHP et l'afficher dans la zone de texte. Si le résultat est "1" (ce qu'il devrait être), alors il devrait apparaître une alerte disant "Prêt".Ajax renvoie des valeurs aléatoires?
Code de la page principale (t1_wait.php):
<html><head><title>Waiting...</title></head><body>
<script type="text/javascript">
function update(id)
{
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else if (window.ActiveXObject){
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}else{
alert("Your browser does not support XMLHTTP!");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.responseText=="1")
alert("Ready!");
}
document.myForm.status.value=xmlhttp.responseText;
}
}
var requesturl = "t1_checkMatch.php?id="+id;
xmlhttp.open("GET",requesturl,true);
xmlhttp.send(null);
// delay for 1 sec
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < 1000);
}
<?php
echo "update(".$_GET['id'].");";
?>
</script>
<form name="myForm">
Status: <input type="text" name="status" />
</form>
</body></html>
La page PHP étant appelé à (t1_checkMatch.php) (toutes les informations db remplacé par *****):
<?php
$db_user = "*****";
$db_pass = "*****";
$db_name = "*****";
mysql_connect(localhost,$db_user,$db_pass);
@mysql_select_db($db_name) or die("Unable to select database");
$match_id = $_GET['id'];
$match_info = mysql_query("SELECT * FROM ***** WHERE id=".$match_id);
if(mysql_result($match_info,0,"usr2")==-1){
echo "1";
}else{
echo "0";
}
?>
Quand je vais à la t1_wait.php? Id = 16 (la page principale passant id = 16 par GET), il devrait envoyer une demande à t1_checkMatch.php? Id = 16, qui renvoie (oui, j'ai vérifié) 1. Cela devrait déclencher une alerte disant "Prêt" et faire apparaître 1 dans la zone de texte, mais aucune de ces choses n'arrive. La zone de texte est vide.
Qu'est-ce qui ne va pas? Merci!
Pourquoi inventer la roue, encore une fois? Avec l'une des bibliothèques (mootools, par exemple), tout votre code JS aurait été réduit à 1-5 lignes au maximum. –
Et puis il ajouterait quelques centaines pour mootools :) – Matt