J'ai un <DIV> dans lequel j'ai un script PHP classique qui va lire le contenu d'une table MySQL.
Je suis à la recherche d'un script PHP-AJAX qui assurerait le refresh de ce <DIV>.
Actuellement c'est une simple balise meta refresh qui recharge l'ensemble de la page toutes les 5 secondes. Mais le refresh ne se fait plus au bout d'un certain temps et puis graphiquement c'est dépassé, c'est la page entière qui se recharge, c'est bof...
Quelqu'un aurait un script de ce genre? Ce serait super sympa...
franchement tu trouveras tout ce qu'il te faut sur le net, aprés si tu as des problèmes de compréhension, là le forum intervient...
Personellement je n'aime pas trop aider les gens s'ils ne montrent pas au moins un bout de code qui marche pas.
__________________________ Eoliennes et informatique sur freresguizmo
mais avant de poster, j'ai bien sûr recherché dans Google et j'ai tout une tripotée de tuto qui donnent des exemples surtout orienté "traitements de formulaire" ou au mieux un lien à cliquer avec des gestions d'événement alors ça m'a paru inutile de coller un code quelconque.
<html>
<head>
<script language="JavaScript" type="text/javascript">
function getXhr() {
var req = null;
//firefox
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
//ie
else if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
}
//non supporté
else {
alert("Fonction non supportée par le navigateur");
req = false;
}
return (req);
}
function getTrack()
{
var req = getXhr();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var resultat = req.responseText;
document.getElementById('div_track').innerHTML=resultat;
}
};
req.open("GET","lecture.php",true);
req.send(null);
setTimeout("getTrack()", 5000);
}
getTrack();
</script>
</head>
<body>
</body>
</html>
Le code appelé : lecture.php
<div id="div_track">
<?
$Lien=mysql_connect("localhost","root","");
echo "<table width=auto border=1>
<tr>
<td width=auto>ref_com</td>
<td width=auto>nom</td>
</tr>";
$Req="SELECT * FROM commandes WHERE 1 LIMIT 0,10";
$Res = mysql_db_query("restominute",$Req,$Lien) or die('Erreur dans la requete:'.$Req.'<BR>Avec l\'erreur:'.mysql_error());
while ($row = mysql_fetch_array($Res))
{
echo "<tr>";
echo "<td valign=top>".$row[ref_com]."</td>";
echo "<td valign=top>".$row[nom]."</td>";
echo "</tr>";
}
mysql_close($Lien);
echo "</table>";
?>
</div>
j'ai mis le débogueur en route sous IE et j'obtiens le message suivant: document.getElementById(....) a la valeur Null ou n'est pas un objet
pourtant la balise div est bien déclarée dans lecture.php ?
Oublions le code que j'ai publié auparavant, j'ai trouvé un script qui a l'air de bien fonctionner et qui est bien expliqué. Malheureusement j'ai des soucis de compatibilité.
Pour ces browser c'est ok : IE7, Opéra, Firefox. Mais je n'arrive à rien avec IE6. La page ne se charge même pas et si je mets en action le débogueur de IE, j'ai le message suivant montrant du doigt le fichier index.php :
Ligne : 51
Car : 49
Erreur :Constante de chaïne non terminée
Code : 0
je te recommande d'aller vers une solution plus simple ^^
prends un makeRequest tout simple pour ta requête ajax. (cf le script sur le site de dev mozilla)
Ensuite tu ajoutes quelques variables globales javascript que tu déclares tout en haut de ton script js, avant les fonctions style
var tempoRefresh = 5000;
puis sur le onload tu appelles une fonction qui se rappelle en récursif (via un setTimeout dont le delay = ta tempoRefresh), et qui appelles ton script de makeRequest (qui lui se charge d'appeler ton script php, et de gérer ensuite l'affichage dans le alertContent).
un truc simple comme ça dans un premier temps :)
__________________________
....... Curtis: RTS 3D .......