Reinitialisation de la page

Résolu/Fermé
MOI - 13 août 2009 à 09:28
 MOI - 13 août 2009 à 12:22
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 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
13 août 2009 à 09:36
Ce serais pas mal de mettre ta fonction ordredate aussi...

0
Elle fait juste des calculs de date puis affiche le résultat du calcul via des document.write
0
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
13 août 2009 à 09:55
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
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 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
13 août 2009 à 11:19
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
Impec c'est exactement ce que je voulais :-D

Merciiiiiiiiiiiiiiiiiiiiiiiiiiii
0
Ozimandias Messages postés 502 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 10 mars 2010 46
13 août 2009 à 12:14
As-tu compris pourquoi au moins?

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