IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Affichage des anniversaires sur un site


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Affichage des anniversaires sur un site
    Bonjour à tous

    J'aurai besoin d'aide pour débugger un petit script qui permet d'afficher une date d'anniversaire sur un site. Le script affiche :
    - Bon anniversaire "untel" si c'est le jour de son anniv
    - Pas d'anniversaire ce jour s'il n'y a aucune anniversaire à souhaiter ce jour là?.
    Le problème, c'est que les jours d'anniversaire, j'ai les 2 messages qui s'inscrivent à la fois !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script type="text/javascript">/* <![CDATA[ */
    function afficherAnniversaires() {
    	var today = new Date;
    	var mois_actuel = today.getMonth() +1;
    	var jour_actuel = today.getDate();
     
    	/* -- Avril -- */
    	if(mois_actuel == 4 && jour_actuel == 1) { document.write("Bon anniversaire Sabine !"); }
    	if(mois_actuel == 4 && jour_actuel == 10) { document.write("Bon anniversaire Victor !"); }
    	if(mois_actuel == 4 && jour_actuel == 13) { document.write("Bon anniversaire Tanguy !"); }
    	if(mois_actuel == 4 && jour_actuel == 16) { document.write("Bon anniversaire Gérard !"); }
    	if(mois_actuel == 4 && jour_actuel == 26) { document.write("Bon anniversaire Jérôme !"); }
    	if(mois_actuel == 4 && jour_actuel == 29) { document.write("Bon anniversaire Vincent !"); }
    	if(mois_actuel == 4 && jour_actuel != 1 || 10 || 13 || 16 || 26 || 29) { document.write("Pas d'anniversaire aujourd'hui !"); }
     
    }/* ]]> */</script> 
    <div align="center"><strong>
    <script type="text/javascript">afficherAnniversaires();</script>
    </strong></div>
    Merci à celles et ceux qui pourront m'aider

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    Bonjour
    analysons cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(mois_actuel == 4 && jour_actuel != 1 || 10 || 13 || 16 || 26 || 29)
    plus précisément
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jour_actuel != 1 || 10 || 13 || 16 || 26 || 29
    prenons la partie droite, soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 || 10 || 13 || 16 || 26 || 29
    que vaut-elle? 1 et toujours 1, pour t'en convaincre testes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(1 || 10 || 13 || 16 || 26 || 29);
    ...pas sûr que la façon de gérer cela soit la bonne, enfin ceci n'est que mon avis personnel

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Oui, je crois que je n'ai pas bien formulé tout ça ... mais je continue de chercher et j'ai également essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <script type="text/javascript">/* <![CDATA[ */
    function afficherAnniversaires() {
    var today = new Date;
    var mois_actuel = today.getMonth() +1;
    var jour_actuel = today.getDate();
     
    /* -- Avril -- */
    if(mois_actuel == 4 && jour_actuel == 1) { document.write("Bon anniversaire Sabine !"); }
    if(mois_actuel == 4 && jour_actuel == 10) { document.write("Bon anniversaire Victor !"); }
    if(mois_actuel == 4 && jour_actuel == 13) { document.write("Bon anniversaire Tanguy !"); }
    if(mois_actuel == 4 && jour_actuel == 16) { document.write("Bon anniversaire Gérard !"); }
    if(mois_actuel == 4 && jour_actuel == 26) { document.write("Bon anniversaire Jérôme !"); }
    if(mois_actuel == 4 && jour_actuel == 29) { document.write("Bon anniversaire Vincent !"); }
    else { document.write("Pas d'anniversaire aujourd'hui !"); }
     
    }/* ]]> */</script>
    <div align="center"><strong>
    <script type="text/javascript">afficherAnniversaires();</script>
    </strong></div>
    Mais sans plus de succès ...
    En fait le jour d'un anniversaire, s'affiche les 2 messages (bon anniversaire Vincent !Pas d'anniversaire aujourd'hui)

    Une idée ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    ça c'est le deuxième effet kiss cool, une bonne indentation te montrerait que le else s'applique au dernier test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    if( mois_actuel == 4 && jour_actuel == 1) {
      document.write("Bon anniversaire Sabine !");
    }
    if( mois_actuel == 4 && jour_actuel == 10) {
      document.write("Bon anniversaire Victor !");
    }
    if( mois_actuel == 4 && jour_actuel == 13) {
      document.write("Bon anniversaire Tanguy !");
    }
    if( mois_actuel == 4 && jour_actuel == 16) {
      document.write("Bon anniversaire Gérard !");
    }
    if( mois_actuel == 4 && jour_actuel == 26) {
      document.write("Bon anniversaire Jérôme !");
    }
    if( mois_actuel == 4 && jour_actuel == 29) {
      document.write("Bon anniversaire Vincent !");
    }
    else {
      document.write("Pas d'anniversaire aujourd'hui !");
    }

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Alors je sèche ... je ne sais pas comment faire pour indiquer qu'il n'y a pas d'anniversaire à souhaiter les autres jours ....

    Pourriez vous m'aider s'il vous plait ?

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 124
    Points : 44 922
    Points
    44 922
    Par défaut
    il existe surement plein de manière d'y arriver en voici au moins deux
    sur base de ce que tu as commencé à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    // variable vide au départ
    var sText = "";
     
    // affectation suivant les anniversaires
    if( mois_actuel == 4 && jour_actuel == 1){
      sTxt = "Sabine";
    }
    if( mois_actuel == 4 && jour_actuel == 10){
      sTxt = "Victor";
    }
    if( mois_actuel == 4 && jour_actuel == 13){
      sTxt = "Tanguy";
    }
    if( mois_actuel == 4 && jour_actuel == 16){
      sTxt = "Gérard";
    }
    if( mois_actuel == 4 && jour_actuel == 26){
      sTxt = "Jérôme");
    }
    // affichage final
    if( sTxt.length){
      document.write( "Bon anniversaire " +sTxt +" !");
    }
    else{
      document.write("Pas d'anniversaire aujourd'hui !");
    }
    il y a bien sûr encore moyen de factoriser le code...

    une autre sur base de tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var Anni = [];
    // on fait demarrer les mois à 1
    for( var i = 1; i < 13; i++){
      Anni[i] = [];
    }
    // affectation des anniversaires
    Anni[4][1]  = "Sabine";
    Anni[4][10] = "Victor";
    Anni[4][13] = "Tanguy";
    Anni[4][16] = "Gérard";
    Anni[4][26] = "Jérôme";
    // affichage
    if( Anni[Mois][Jour]){
      document.write( "Bon anniversaire " +Anni[Mois][Jour] +" !");
    }
    else{
      document.write("Pas d'anniversaire aujourd'hui !");
    }
    la maintenance me semble plus facile avec la méthode du tableau

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Merci d'utiliser la balise [code] (bouton # de l'éditeur)
    Après avoir cherché un bon moment ... mais c'est comme ça qu'on trouve ses erreurs et ses oublis, j'ai enfin trouvé la solution !
    Non seulement je ne reprenais pas certaines variables indispensables contenues dans l'ancien script, mais il y avait aussi 2 petites erreurs dans le code !

    Voici donc la version fonctionnelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <script language="javascript" type="text/javascript">
    // variable vide au départ
    	var sText = "";
    	var today = new Date;
    	var mois_actuel = today.getMonth() +1;
    	var jour_actuel = today.getDate();
     
     
    // affectation suivant les anniversaires
    if( mois_actuel == 1 && jour_actuel == 3) { sText = "Flavie"; }
    if( mois_actuel == 2 && jour_actuel == 17) { sText = "Aymeric"; }
    if( mois_actuel == 4 && jour_actuel == 1) { sText = "Sabine"; }
    if( mois_actuel == 4 && jour_actuel == 10) { sText = "Victor"; }
    if( mois_actuel == 4 && jour_actuel == 13) { sText = "Tanguy"; }
    if( mois_actuel == 4 && jour_actuel == 16) { sText = "Gérard"; }
    if( mois_actuel == 4 && jour_actuel == 26) { sText = "Jérôme"; }
     
    </script>
     
    <div align="center"><strong>
    <script language="javascript" type="text/javascript">
    if( sText.length){ document.write( "Bon anniversaire " +sText +" !"); }
    else{ document.write("Pas d'anniversaire aujourd'hui !"); }
    </script>
    </strong></div>
    Merci encore pour l'aide ... ouf ! Je ne suis vraiment pas doué en Javascript !
    Je marque ce sujet comme résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Votre avis sur un nouvel affichage des actualités sur le site
    Par khayyam90 dans le forum Evolutions du club
    Réponses: 9
    Dernier message: 28/06/2010, 11h35
  2. affichage des images sur mon site
    Par jilou dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2010, 12h30
  3. affichage des images sur site d'un sous domaine
    Par Boub.J dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2009, 11h53
  4. Calcul des visites sur un site
    Par inferno66667 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/11/2005, 10h46
  5. Arborescence des sujets sur ce site
    Par Invité dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 10/11/2004, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo