Reinitialisation de la page

Résolu
MOI -  
 MOI -
Bonjour,

Dans le code de ma page Internet, je souhaite appeler une fonction (ordredate) toutes les secondes.
Pour cela j'ai fait une boucle de temps comme indiquer par le code ci-dessous
Seulement ma fonction est appelé une première fois après une seconde et après elle n'est plus jamais appelé.
Je précise que ma fonction "ordredate" fait un certain nombre de document.write... je me demande si c'est pas ça qui pose problème mais je ne sais pas comment faire pour réécrire ma page toutes les secondes en faite...

Je ne sais pas si je suis très clair.

Merci pour votre aide

<script type = "text/javascript">
	var i = 0;
	alert(i);
	function augmenter()
	{
		i ++;
		document.getElementById("timer").innerHTML = i;
		ordredate();
	}
	setInterval("augmenter()",1000);
</script>
</head>
<body >
<p id="timer">0</P>


</body>
A voir également:

8 réponses

Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
Ce serais pas mal de mettre ta fonction ordredate aussi...

0
MOI
 
Elle fait juste des calculs de date puis affiche le résultat du calcul via des document.write
0
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
ben justement... document.write écrit sur la page en supprimant ce qu'il y avait avant.

Ton problème est peut être ici. Sans la page entière, je crois qu'on pourra pas t'aider.

0
MOI
 
J'ai adapté pour rendre plus simple

On va dire que je veux que la page affiche certaines informations en la date du jour et le debut de l'année et que toutes les informations qui s'affichent dans le tableau soient mis à jour chaque secondes
(y'a peut etre des trucs qui servent a rien dans le code, j'ai peut etre mal nettoyer pour donner mon exemple mais c'est pas grave, on s'en fout :) )

<html>
<head>
<title>Nous</title>


<script type = "text/javascript">
	var i = 0;
	function augmenter()
	{
		i ++;
		document.getElementById("timer").innerHTML = i;
		ordredate();
	}
	setInterval("augmenter()",1000);

</script>

<script type = "text/javascript">


function calculduree(jourdebut,moisdebut,anneedebut,jourfin,moisfin,anneefin,heurefin,minutefin,secondefin)
{
	function calcul_longueur_mois(annee)
	{
		//préconditions : annee est en entier
		//postconditions : retourne un tableau de 12 éléments d'entier qui indique le nombre de jours dans chaque mois
		var longueurmois=[31,28,31,30,31,30,31,31,30,30,30,31];
		if((!(annee % 4) && (annee % 100)) || !(annee % 400)) //vérifie si l'année traitée est bissextile
		{
			longueurmois=[31,28,31,30,31,30,31,31,30,30,30,31];		
		}
		return longueurmois;		
	}
		
	var duree=0;

	for(i=anneedebut;i<anneefin;i++)
	{
		if((!(i % 4) && (i % 100)) || !(i % 400)) //vérifie si l'année traitée est bissextile
		{
			duree+=366;
		}
		else
		{
			duree+=365;
		}
	}

	var longueurmois=calcul_longueur_mois(anneedebut);
	for(i=0;i<moisdebut;i++)
	{
		if(i==moisdebut-1){duree-=jourdebut}
		else{duree-=longueurmois[i]}
	}
	
	var longueurmois=calcul_longueur_mois(anneefin);
	for(i=0;i<moisfin;i++)
	{
		if(i==moisfin-1){duree+=jourfin}
		else{duree+=longueurmois[i]}
	}
	return duree;
}
		

function ordredate()
{
	jourdebut=parseInt("01",10);
	moisdebut=parseInt("01",10);
	anneedebut=parseInt("2009",10);
	heuredebut=parseInt("0",10);
	minutedebut=parseInt("00",10);
	secondedebut=parseInt("00",10);
	
	var aujourdhui=new Date();
	var AujJour=aujourdhui.getDate();
	var AujMois=aujourdhui.getMonth() + 1;
	var AujAnnee=aujourdhui.getFullYear();
	var AujHeure=aujourdhui.getHours();
	var AujMinute=aujourdhui.getMinutes();
	var AujSeconde=aujourdhui.getSeconds();

	if (AujMois < 10)
	{
		AujMois = "0" + AujMois;
	}

	jourfin=parseInt(AujJour,10);
	moisfin=parseInt(AujMois,10);
	anneefin=parseInt(AujAnnee,10);
	heurefin=parseInt(AujHeure,10);
	minutefin=parseInt(AujMinute,10);
	secondefin=parseInt(AujSeconde,10);
	
	nbjour=calculduree(jourdebut,moisdebut,anneedebut,jourfin,moisfin,anneefin,heuredebut,minutedebut,secondedebut,heurefin,minutefin,secondefin);

	diffannee = anneefin-anneedebut;
	diffmois = moisfin-moisdebut;
	diffjour = jourfin-jourdebut;
	diffheure = heurefin - heuredebut;
	diffminute = minutefin - minutedebut;
	diffseconde = secondefin - secondedebut;

	document.write("<TABLE BORDER=1><TR><TD width=100>En temps</TD>");
	document.write("<TD width=500 align=right>" + diffannee + " année, " + diffmois + " mois, " + diffjour + " jours, " + diffheure + " heures " + diffminute + " minutes " + diffseconde + " secondes</TD></TR>");
	document.write("<TR><TD width=100>En semaines</TD><TD width=500 align=right>" + Math.ceil(nbjour/7) + " </TD></TR>");
	document.write("<TR><TD width=100>En jours</TD><TD width=500 align=right>" + nbjour + " </TD></TR>");
	document.write("<TR><TD width=100>En heures</TD><TD width=500 align=right>" + (nbjour*24 + diffheure) +" </TD></TR>");
	document.write("<TR><TD width=100>En minutes</TD><TD width=500 align=right>" + (nbjour*1440 + diffheure*60 + diffminute) +" </TD></TR>");
	document.write("<TR><TD width=100>En secondes</TD><TD width=500 align=right>" + (nbjour*86400 + diffheure*3600 + diffminute*60 + diffseconde) + " </TD></TR></TABLE><BR>");
	
}

</script>

</head>
<body >


<p id="timer"></P>


</body>
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
Voila, c'est ce que je disais, ton document.write pose problème...

essaye avec ça:

<body >
<div id="zoneAffichageDate">&nbsp;</div> <!-- là pour id tu met ce que tu veux -->

<p id="timer"></P>


</body>


et dans ta fonction à la place de document.write tu mets:

var divAmodifier = document.getElementById('zoneAffichageDate'); // cette ligne sert à éviter d'avoir à réécrire, le programmeur est un feignant.

divAmodifier.innerHTML += "<TABLE BORDER=1><TR><TD width=100>En temps</TD>";
divAmodifier.innerHTML += "<TD width=500 align=right>" + diffannee + " année, " + diffmois + " mois, " + diffjour + " jours, " + diffheure + " heures " + diffminute + " minutes " + diffseconde + " secondes</TD></TR>";

ETC....


0
MOI
 
Impec c'est exactement ce que je voulais :-D

Merciiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Ozimandias Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   46
 
As-tu compris pourquoi au moins?

0
MOI
 
Oui oui je savais pourquoi ça plantait, mais je connaissais pas la methode pour corriger :-)
0