Bonjour,

J'ai écrit un script qui va rechercher des infos dans une base de donnée pour les afficher dans des div et ceci à intervalle régulier.

Ce script fonctionne mais 1 seule fois comme si le settimeout ne fonctionnait pas.

Or quand je retire la partie AJAX le settimeout fonctionne.

Si quelqu'un à une idée ...

Voici le code AJAX:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<script type='text/JavaScript'>
function writediv(nomdiv,texte)
{
document.getElementById(nomdiv).innerHTML = texte;
}
 
function recherche()
{
text = file('rechdernier.php4?parm=1')
writediv('dateb',text);
text = file('rechdernier.php4?parm=2')
writediv('heure',text);
text = file('rechdernier.php4?parm=3')
writediv('titre',text);
text = file('rechdernier.php4?parm=4')
writediv('user',text);
setTimeout("recherche2()",20000);
}
function recherche2()
{
recherche();
}
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
 
</script>
et rechdernier.php4:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 <?php
$param=$_GET['parm'];  
$host = 'xxxx';
$user = 'xxxx';
$pass = 'xxxx';
$db = 'xxxx';
 
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
 
$select = "SELECT * FROM posts ORDER BY date DESC LIMIT 0 , 5";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
	$row = mysql_fetch_array($result);
    $dt=$row['date'] ;
	$dateb=date("d/m/Y",$dt);
	$heure=date("H:i",$dt);
	$titre=$row['title'] ;
	$user=$row['sender'] ; 
	if ($param==1){
		echo $dateb; 
	}
	if ($param==2){
		echo $heure; 
	}
	if ($param==3){
		echo $titre; 
	}
	if ($param==4){
		echo $user; 
	}
mysql_close($link); 
 
}
 
?>

merci