Mise à jour régulière de la page [Résolu]

Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
- - Dernière réponse : cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
- 1 mars 2010 à 14:48
Bonjour a tous, j'ai codée une page php qui m'affiche les informations d'une base de données(Mysql),le code est le suivant:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<?
// information pour la connection à le DB
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'extracomm';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT nomsource,nomgroupe,date,message FROM journalextracomm';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);


// si on a récupéré un résultat on l'affiche.
if($total) {
// debut du tableau
echo '';
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '----

nomsource,
nomgroupe,
date,
message,
';
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_object($result)) {

$nomsource=$row->nomsource;
$nomgroupe=$row->nomgroupe;
$date=$row->date;
$message=$row->message;

echo \"----

$nomsource,
$nomgroupe,
$date,
$message,
\";
}
echo '
';
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

// on libère le résultat
mysql_free_result($result);

?>
j'aimerais avoir comment je peut faire pour actualiser ma page chaque minute en utilisant la technologie AJAX.Merci d'avance
cordialement
aamsa
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Salut,

Toutes les minutes -> setInterval
Mise à jour de la page -> innerHTML
Emission de la requête AJAX -> XMLHttpRequest/XMLHTTP.

Disons que le plus gros qu'il te reste à faire est en javascript, donc je déplace sur javascriptfr.com.

[ Déplacé sur javascriptfr.com ]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Indente ton code, il sera bien plus lisible ! C'était un problème d'accolades...

Pour débuguer les requête ajax et le javascript, j'utilisais FireFox + son extension FireBug.
Tu as bien sûr une console qui récupère les erreurs.
Tu peux faire du pas à pas dans le javascript, mettre des points d'arrêts...
Les requêtes ajax sont tracées : tu as les infos sur la requête et la réponse.


function go(){
  var xhr = getXhr()
  // On défini ce qu'on va faire quand on aura la réponse
  xhr.onreadystatechange = function() {
    // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    if(xhr.readyState 4 && xhr.status 200)
      alert(xhr.responseText);
    else
      return false;
  }

  xhr.open("GET","Journal.php",true);
  xhr.send(null);
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
C'est pas du code PHP, c'est de l'HTML !
Le PHP est langage de programmation exécuté côté serveur.
Le HTML est un langage de présentation traité par le navigateur.

Utilise InnerHTML (Dans un div ajouté dans ton body par exemple) pour mettre en place ce bout de HTML dans ta page. Il sera traité par le navigateur et ça t'affichera ton tableau.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Bin vi !
Clique sur setInterval de ma première réponse.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
3
Merci
Un lien c'est un lien, c'est fait pour les utilisateurs. Tu peux appeler go depuis setInterval.

<html><head><title>Test</title>
</head>
<script type="text/javascript">
<!--
var actif = window.setInterval("go()", 1000);

function go() {
  var container = document.getElementById('data_container');
  container.innerHTML += 'Kikoo
';
}
//-->
</script>
  


</html>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_rt15
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
Merci pour votre aide, mais j'ai encore un pb avec ajax; j'ai crée un fichier(message.html)son code est le suivant:
<!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=iso-8859-1" />
<title>message</title>
<script type="text/JavaScript">
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
e = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState 4 && xhr.status 200){
xhr.responseText;
else return (false);
}

}
}
xhr.open("GET","Journal.php",true);
xhr.send(null);

}
</script>
</head>


[# Lire les messages]

</html>
lorsque je clique sur le lien il me donne rien,
vous pouvez me dire où réside le problème??
cordialement
aamsa
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
lorsque j'exécute le script une message s'affiche contenant une mélange entre les donnes et le code php et pas l'affichage des des donnes seulement.
cordialement
aamsa
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
voila le message qui s'affiche lors le clic :
nomsource,

nomgroupe,

date,

message,

----

el haddouchi aamsa,

technico comerciale,

2010-02-26 11:12:00,

je travail avec le groupe des technico comerciles,

----

saloua,

developpement,

2010-02-25 12:00:00,

je suis saloua je travail avec le groupe des d�vloppeurs,

----

souad,

administrateur,

2010-02-24 10:00:00,

je suis souad je travail avec le groupe des administrateurs,

----

khadija,

design,

2010-02-23 23:00:00,

je suis khadija et je travai avec le groupe des designers
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
Oui comme vous avez dis, j'ai ajoutée un div et çamarche,mais lorsque je clic sur le lien les donnees s'affichent et le lien aussi s'affiche dans la page.
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
désolé pour le dérangement et si je vous dérange n'hésitez pas à me dire.
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
je veux que les donnees affichees dans le div soient rafraichis chaque minute. Est ce que vous avez une idéé sur ce truc? Merci d'avance
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
comment on peut mettre un lien hypertex (disable)
en javascript, j'ai utilise cette méthode:
document.getElementById('idmsg').style.display="none";
mais le lien reste afficher dans la table.
cordialement
aamsa
Commenter la réponse de aamsa
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
0
Merci
Je comprends pas. Tu n'as plus besoin du lien vu que tu as le rafraichissement automatique. Il suffit d'appeler directement la fonction go(). Donc plutôt que de ne pas l'afficher, tu peux l'enlever de ta page.
Commenter la réponse de cs_rt15
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
c'estle lien qui fait appel à la fonction go().
cordialement
aamsa
Commenter la réponse de aamsa
Messages postés
34
Date d'inscription
mercredi 16 janvier 2008
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
Merci bcp ça marche bien, maintenant je veux que la date s'affiche selon chaque pays cèd(si j'envoie un msg à 8 du maroc le msg va s'afficher chez un autre utilisateure à 10 de la france par exemple)vous comprenez? est ce que vous avez des idées a propos ce sujet.
cordialement,
aamsa
Commenter la réponse de aamsa
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
9
0
Merci
Pour une nouvelle question, il faut créer une nouvelle discussion.

Concernant ton problème, il me semble qu'il faudrait que le PHP du serveur envoie l'heure UTC/GMT au client. Ensuite, le javascript du client n'a plus qu'à créer une date en partant de l'heure UTC et en lui ajoutant l'offset récupéré avec getTimeZoneOffset
Commenter la réponse de cs_rt15