Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/07/2011, 12h59   #1
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Par défaut Appel de fonction Javascript dans un code php

Bonjour à tous, j'ai une fonction js de compte à rebours qui marche très bien quand je l'exécute dans un fichier HTML comme ceci:
Code html :
1
2
3
4
5
6
7
8
9
10
 
<html>
<head>
 <script type="text/javascript"></script>
  <script src="script_decompte.js" type="text/javascript"></script>
</head>
<body onload="compte_a_rebour()">
<div id="CompteARebours"></div>
</body>
</html>

Fonction Javascript:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
function compte_a_rebour()
			{
 
				var CompteARebours = document.getElementById("CompteARebours");
			   //ici on recuper la date en cours
				var date_actuelle = new Date()/1000;
			   // ici la date de fin de l ofre
				var date_evenement = 1311976800;
			   // difference de date en seconde
 
				var secondes = (date_evenement - date_actuelle);
				//Si la variable secondes est une valeur positive, c'est que le compte 
				//à rebours n'est pas terminé ; si c'est une valeur négative, 
				//c'est qu'il est terminé. On fait donc une petite condition : 
				if(secondes > 0){
 
					DiffJour = Math.floor (secondes / 86400);
					DiffHeure = Math.floor ((secondes - (DiffJour * 86400)) / 3600);
					DiffMin = Math.floor ((secondes - ((DiffJour * 86400 + DiffHeure * 3600))) / 60);
					DiffSec = Math.floor (secondes - ((DiffJour * 86400 + DiffHeure * 3600 + DiffMin * 60)));
 
					var Et = "et";
 
					if(DiffJour == 0){
						DiffJour = '';
						Jour = '';
					} else {
						Jour = (DiffJour == 1) ? "jour," : "jours,";
					}
 
					if(DiffHeure == 0){
						DiffHeure = '';
						Heure = '';
					} else {
						Heure = (DiffHeure == 1) ? "heure," : "heures,";
					}
					if(DiffMin == 0){
						DiffMin = '';
						Minute = '';
 
					} else {
						Minute = (DiffMin == 1) ? "minute" : "minutes";
					}
					if(DiffSec == 0){
						DiffSec = '';
						Seconde = '';
						Et = '';
					} else {
						Seconde = (DiffSec == 1) ? "seconde" : "secondes";
						Et = (DiffMin == 0 && DiffHeure == 0 && DiffJour == 0) ? "" : "et";
					}
					CompteARebours.innerHTML = DiffJour + ' ' + Jour + ' ' + DiffHeure + ' ' + Heure + ' ' + DiffMin + ' ' + Minute + ' ' + Et + ' ' + DiffSec + ' ' + Seconde;
				} else {
					CompteARebours.innerHTML = 'Compte à rebours terminé.';
				}
				Time_ReLance = setTimeout("compte_a_rebour();", 1000);
			}
Résultat:
Code :
4 jours, 11 heures, 29 minutes et 37 secondes
Mais le problème c'est que je dois récupérer date_evenement dans ma base de données donc je devrais passer un paramètre à ma fonction.
Et je fais ceci:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
function compte_a_rebour(sec)
 {
var CompteARebours = document.getElementById("CompteARebours");
//date actuelle en secondes
var date_actuelle = new Date()/1000;
//date de fin en secondes                                                                  var date_evenement = new Date(sec);
// difference de date en seconde
var secondes = (date_evenement - date_actuelle);
//Si la variable secondes est une valeur positive, c'est que le compte 
//à rebours n'est pas terminé ; si c'est une valeur négative, 
//c'est qu'il est terminé. On fait donc une petite condition : 
if(secondes > 0){
 
	DiffJour = Math.floor (secondes / 86400);
	DiffHeure = Math.floor ((secondes - (DiffJour * 86400)) / 3600);
	DiffMin = Math.floor ((secondes - ((DiffJour * 86400 + DiffHeure * 3600))) / 60);
	DiffSec = Math.floor (secondes - ((DiffJour * 86400 + DiffHeure * 3600 + DiffMin * 60)));
 
	var Et = "et";
 
	if(DiffJour == 0){
		DiffJour = '';
		Jour = '';
		} else {
		Jour = (DiffJour == 1) ? "jour," : "jours,";
		}
 
		if(DiffHeure == 0){
		 DiffHeure = '';
		 Heure = '';
		} else {
		Heure = (DiffHeure == 1) ? "heure," : "heures,";
		}
		if(DiffMin == 0){
			DiffMin = '';
			Minute = '';
 
		} else {
		Minute = (DiffMin == 1) ? "minute" : "minutes";
		}
		if(DiffSec == 0){
			DiffSec = '';
			Seconde = '';
			Et = '';
		} else {
		Seconde = (DiffSec == 1) ? "seconde" : "secondes";
		Et = (DiffMin == 0 && DiffHeure == 0 && DiffJour == 0) ? "" : "et";
	      }
	CompteARebours.innerHTML = DiffJour + ' ' + Jour + ' ' + DiffHeure + ' ' + Heure + ' ' + DiffMin + ' ' + Minute + ' ' + Et + ' ' + DiffSec + ' ' + Seconde;
	} else {
	CompteARebours.innerHTML = 'Compte à rebours terminé.';
	}
	Time_ReLance = setTimeout("compte_a_rebour();", 1000);
			}
Et donc dans mon script PHP:
Code php :
1
2
3
4
5
6
7
8
9
10
 
<?php 
//je convertis la date de ma base en secondes
$sec = strtotime($valeur['date_fin']);
echo '
<span id = "CompteARebours">
<script language="javascript" type="text/javascript">
compte_a_rebour('.$sec.');
</script></span>';
?>

Mais ça ne marche pas, il ne m'affiche rien.

Et j'ai ceci lorsque j'affiche le code source:
Code html :
1
2
3
4
												<span id = "CompteARebours">
<script language="javascript" type="text/javascript">
compte_a_rebour(1311717600);
</script></span></a>

Comment dois-je faire pour appeler ma fonction js dans mon script PHP afin qu'elle s'exécute correctement?

Merci d'avance.
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 13h08   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Pourquoi as-tu déplacé l'appel de ton script ?
Code php :
<body onload="compte_a_rebour(<?php echo $sec; ?>)">
convient très bien...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2011, 15h24   #3
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Merci pour ta réponse Bovino. Mais mon fichier HTML (dans lequel il y a le BODY n'est pas celui dans lequel j'ai le script PHP (celui dans lequel j'appelle la fonction). Aussi j'ai un autre fichier .js dans lequel il y a le corps de ma fonction compte_a_rebour(sec). Donc j'ai un fichier .php dans lequel j'appelle ma fonction et je fais un include() de ce fichier dans mon fichier HTML. J'ai fait ce que tu m'as recommandé de faire mais il ne m'affiche toujours rien.

Je ne sais toujours pas comment faire pour que ça marche.
Merci.
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h01.


 
 
 
 
Partenaires

Hébergement Web