Passage de variables du javascript vers du html avec du code externe

jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014 - 10 juin 2010 à 10:18
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 13 juin 2010 à 07:40
Bonjour,

Comme je débute en javascript, j'ai sûrement fait la ou les erreur(s) du débutant.
Pouvez-voyus m'aider ?

J'ai un fichier "heure_date.js" dans le répertoire "Scripts" à la racine du site.
De ce code javascript, je dois repêcher le jour (part01) pour la balise HTML "journee"
et aussi l'heure (part02) pour la balise HTML "heure"... cela se trouve en fin de code html.

Vous constaterez que je fais plusieurs appels de fonctions js dans le code en interne ou en externe. Mais pour l'heure et date cela foire. Pourquoi?

Outre le problème qu'il devrait y avoir pour part01 et part02 (peut-être ?),
J'ai tout essayé depuis 2 jours, on dirait même que cela n'est même pas exécuté

Pouvez-vous m'aider à y voir plus clair ?


Voici le code javascript :
// JavaScript Document
function date_heure(id)
{
date = new Date;
annee = date.getFullYear();
moi = date.getMonth();
mois = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
j = date.getDate();
jour = date.getDay();
jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
h = date.getHours();
if(h












Le contenu de cette page nécessite une version plus récente d'Adobe Flash Player.

http://www.adobe.com/go/getflashplayer






























Le contenu de cette page nécessite une version plus récente d'Adobe Flash Player.

http://www.adobe.com/go/getflashplayer






























Le contenu de cette page nécessite une version plus récente d'Adobe Flash Player.

http://www.adobe.com/go/getflashplayer












document.getElementById('journee').innerHTML = part01;




document.getElementById('heure').innerHTML = part02;






,
,
,









swfobject.registerObject("FlashID");
swfobject.registerObject("FlashID2");
swfobject.registerObject("FlashID3");









jyd

5 réponses

jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
10 juin 2010 à 10:23
J'ai oublié de préciser ce qu'est censé faire ce code.
C'est pour avoir dans "journee", la date dynamique du jour et dans "heure", l'heure dynamique du moment.

A l'aide, svp.
jyd
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
12 juin 2010 à 17:36
Bonjour,
je ne sais trop par quoi commencer!
Bon je me jette...
pour commencer il ne faut mettre que le code qui pose problème ou qui a avoir avec celui ci, ici 400 lignes ce qui rend difficile la lecture surtout quand il n'y à pas d'indentation et le balisage de CODE et rebute les potentiel intervenant, bon ceci étant dit...

Tu as une function
function date_heure(id)
et lors de l'appel sur le body tu ne passe pas de paramètre

on notera au passage que tu as omis le signe égal, il devrait y avoir


Plus loin dans le document tu écris

<script type="text/javascript">document.getElementById('journee').innerHTML = part01;</script>




<script type="text/javascript">document.getElementById('heure').innerHTML = part02;</script>


or les variables part01 et part02 n'étant pas globale ne sont donc pas connues à ce niveau...
laisses les balise vides elles se rempliront par la suite...





;O)


Remontons à la fonction
c'est dans celle ci que tu dois mettre ce que l'on vient de supprimer des DIVs

...corriges déjà cela est la solution apparaîtra toute seule...
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
12 juin 2010 à 22:18
Bonsoir à toi.

Merci pour ta réponse.
De mon côté, désolé pour la réactivité pas très exemplaire de ma part...
Je me suis retrouvé le pied dans le plâtre... ceci explique cela...

N'est-il donc pas possible d'appeler cette fonction en externe...
car comme je comprends je dois l'intégere 2 fois (dans 'journee' et dans 'heure')... De plus cette fonction va se faire rappeler à 4 reprises dans 2 autres pages HTML... C'est de là qu'il me swemblait intéressant de faire un appele externe...

Peux-tu reconsidérer ce petit souci dans ta correction.
Merci d'avance.
jyd
0
jytest Messages postés 314 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 22 décembre 2014
12 juin 2010 à 22:19
Aussi, je précise pourquoi j'ai envoyé tout le code... car j'avais déjà un javascript interne et un autre... pour éviter d'éventuelles confusions.

Merci d'avance pour ton aide.



jyd
0

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

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
13 juin 2010 à 07:40
Bonjour et bon rétablissement
N'est-il donc pas possible d'appeler cette fonction en externe...
c'est même une bonne pratique.

Il te faut également prendre de bonnes habitudes de codage, déclaration des variables avec le mot var, point virgule en fin d'instruction, les accolades ou autre indentation...etc...

A lire Bonnes pratiques javascript du site du Zéro.

ton code pourrait se résumer à cela
ton fichier date.js
//-- Definition litterale
var jours = new Array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
var mois  = new Array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
//-------------------
function date_heure(){
  //-- Recup date...etc...
  var date  = new Date;
  var annee = date.getFullYear();
  var moi   = date.getMonth();
  var j     = date.getDate();
  var jour  = date.getDay();
  var h     = date.getHours();
  var m     = date.getMinutes();
  var s     = date.getSeconds();
  //-- formattage sortie
  if (h < 10){
    h = "0" + h;
  }
  if (m < 10) {
    m = "0" + m;
  }
  if (s < 10) {
    s = "0" + s;
  }
  //-- chaine resultat
  var part01 = 'Nous sommes le ' + jours[jour] + ' ' + j + ' ' + mois[moi] + ' ' + annee;
  var part02 = h + ':' + m + ':' + s;
  //-- ecriture resultat
  document.getElementById('journee').innerHTML = part01;
  document.getElementById('heure').innerHTML   = part02;
  //-- rappel fonction
  setTimeout( function(){ date_heure()}, '1000');
  return true;
}
cette fonction peut être optimisée et améliorée avec les tests mais ce n'est pas le sujet...

et ton fichier date.html mini
<html>
<head>
<script type="text/javascript" src="date.js"></script>
</head>

  


  



</html>

;O)
0
Rejoignez-nous