Afficher des données en live - Ajax

Résolu
Clément -  
 Clément -
Bonsoir,

je travail actuellement sur une application web permettant de gérer les absents dans un lycée. Pour cela, j'aimerais afficher le nom des absents sur la page d'accueil de l'application sans avoir à rafraîchir la page à chaque fois.

Voici mon code JS:

<div id="nom"></div><div id="prenom"></div><div id="classe"></div>
<input type="button" value="Acutaliser le service" onClick="Recuperer()" />


<script>
function $(id){
	return document.getElementById(id);
}
function Recuperer(){
	requeteAjax = new XMLHttpRequest();
	url = 'abs.php';
	requeteAjax.open('GET', url, false);
	requeteAjax.send(null);
	data = eval('(' + requeteAjax.responseText + ')');
	$('nom').innerHTML = 'Nom: ' + data.nom; 
	$('prenom').innerHTML = 'Prenom: ' + data.prenom;
	$('classe').innerHTML = 'Classe: ' + data.classe;

        AjouterTableau(data.nom, data.prenom, data.classe);
	Lister();
}


Histo = new Array();
function AjouterTableau(nom, prenom, classe){

	Histo.push([new Date(), nom, prenom, classe]);
}

function Lister(){
	html = '';
	for (var i=0; i < Histo.length; i++){
		html += Histo[i][0] + ' '; 
		html += Histo[i][1] + ' - ';
		html += Histo[i][2] + ' ';
		html += Histo[i][3] + '<br />';
	}
	$('contenu').innerHTML = html;
}


	
</script>


En gros, j'aimerais que la fontion "Recuperer" s'execute auotmatiquement sur la page d'accueil dès qu'un absent est ajouté à la BDD

Pour ce qui est du fichier "abs.php" il permet la création d'un "arbre" .json qui liste les absents

Voila,

A bientôt
A voir également:

4 réponses

BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Bonsoir Clément,

Tu peux ajouter la méthode javascript suivante à ta page web :

function rafraichir()
{
window.setTimeout(Recuperer, 30000); // 30000 = 30 secondes
}

puis la déclencher au niveau de la balise <body onload=rafraichir()"> par exemple.
0
Clément
 
Bonsoir,

Tout d'abord, merci pour ta réponse, mais il n'y a vraiment pas une autre manière, parce que j'aimerais aussi qu'à chaque fois qu'un eleve est porté absent, un feuille est imprimée (une feuille / eleve absent), donc si il y a plusieurs élèves absents dans ce laps de temps, le programme va m'imprimer tous les élèves ajoutés absents durant ce laps de temps sur une seule feuille (pas terrible...)

Mais au pire, il y a ta technique ;)
0
BadGuitarist Messages postés 367 Date d'inscription   Statut Membre Dernière intervention   27
 
Je crois que tu n'as pas vérifié ce que fait la méthode : window.setTimeout( , )
car elle fait exactement ce que tu as demandé initialement : lancer à intervalle de temps régulier la fonction Recuperer().
0
Clément
 
Je l'ai essayé, elle me va en fait! Comme quoi, il faut toujours tester avant d'en demander plus :D

Merci beaucoup à toi! Bonnes fêtes ;)
0