Script incomplet...

Bonjour,

Je veux souhaiter l'anniversaire sur le site de l'association aux membres inscrits (site en construction).

Mais je suis débutant en ce qui concerne les scripts.

J'en ai pourtant trouvé un qui me convient et qui fonctionne parfaitement...Sauf que...

Quand il y a deux dates anniversaires le même jour le script ne m'en affiche qu'une...

Si quelqu'un avait la gentillesse de vouloir m'aider à modifier ce script je lui en serais éternellement reconnaissant.

Je veux bien apprendre par l'exemple.
Aussi, si vous vouliez me faire un exemple avec 3 ou 4 noms pour que je vois comment ça fonctionne...

Merci d'avance pour votre aide si précieuse.
Ci-dessous le script.
@+
-----------------------------

<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 == 5 && jour_actuel == 3) { sText = "Flavie"; }
if( mois_actuel == 5 && jour_actuel == 17) { sText = "Aymeric"; }
if( mois_actuel == 6 && jour_actuel == 1) { sText = "Sabine"; }
if( mois_actuel == 6 && jour_actuel == 13) { sText = "Victor"; }
if( mois_actuel == 6 && jour_actuel == 13) { sText = "Tanguy"; }
if( mois_actuel == 6 && jour_actuel == 26) { sText = "Gérard"; }
if( mois_actuel == 6 && 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>

7 réponses

  1. Je ne sais pas pourquoi mais le premier listing fonctionne maintenant !!!
    Merci infiniment pour votre aide.
    Cordialement
    1. bizarre tu as du oublier qq chose, car chez moi ça fonctionne, sous Firefox et IE, j'ai bien:

      Bon anniversaire Gérard !
      Bon anniversaire Jérôme !
      1. Alors;

        var sText = [];

        if( mois_actuel == 5 && jour_actuel == 3) { sText = ["Flavie"]; }
        ...
        if( mois_actuel == 6 && jour_actuel == 13) { sText = ["Victor", "Tanguy"]; }
        ...

        if( sText.length){
        for (i =0; i<sText.length; i++)
        document.write( "Bon anniversaire " +sText[i] +" !"); }

        else{ document.write("Pas d'anniversaire aujourd'hui !"); }
        1. Autant pour moi, j'avais superposé 2 fenêtres d'affichage...
          Par contre il m'affiche 13 fois le message ci-dessous !!!
          Bon anniversaire undefined !
          @+
          1. Merci pour la réactivité de votre réponse...
            C'est super génial.
            Pour le moment je préfère rester sur ce script, quitte à rajouter manuellement les adhérents.
            Juste une petite remarque, il semblerait qu'il y ait un affichage qui se chevauche et rend illisible le message !!!
            J'ai essayé de bouger quelques lignes ici et là sans succés...
            Pouvez-vous m'aider ?
            Merci infiniment et pardon pour le dérangement.
            Amitiés informatiques.
            1. Voilà:
              <head> 
              <script language="javascript" type="text/javascript"> 
              // variables vides au départ 
              var sText = new Array() ; //on met sous forme d'array, ainsi on pourra en empiler plusieurs 
              var texte_a_ecrire=""; 
              
              var today = new Date; 
              var mois_actuel = today.getMonth() +1; 
              var jour_actuel = today.getDate(); 
              
              // affectation suivant les anniversaires 
              // sText.push empile la valeur dans l'array 
              if( mois_actuel == 5 && jour_actuel == 3) { sText.push("Flavie"); } 
              if( mois_actuel == 5 && jour_actuel == 17) { sText.push("Aymeric"); } 
              if( mois_actuel == 6 && jour_actuel == 1) { sText.push("Sabine"); } 
              if( mois_actuel == 6 && jour_actuel == 13) { sText.push("Victor"); } 
              if( mois_actuel == 6 && jour_actuel == 13) { sText.push("Tanguy"); } 
              if( mois_actuel == 6 && jour_actuel == 26) { sText.push("Gérard"); } 
              if( mois_actuel == 6 && jour_actuel == 26) { sText.push("Jérôme"); } 
              
              //on peut mettre cette fonction dans le head, elle est appelée au chargement de la page 
              function ecrire_bon_anniversaire(id_a_ecrire){ 
               //quelques explications 
               if( sText.length > 0){ //si l'array n'est pas vide 
                //on formate le texte en gras 
                texte_a_ecrire+='<strong>'; 
                //par une boucle on parcours cet array 
                for (i=0;i<sText.length;i++){ 
                 //si plus d'un anniversaire on rajoute un <br /> pour faire un saut de ligne 
                 if(i > 0 ) texte_a_ecrire+=" <br />"; 
                 texte_a_ecrire+= "Bon anniversaire " +sText[i] +" !"; 
                } 
                texte_a_ecrire+='</strong>'; 
               }else{  
                texte_a_ecrire+="Pas d'anniversaire aujourd'hui !"; 
               } 
                 
                //on ecrit dans le div atteint par son id 
                document.getElementById(id_a_ecrire).innerHTML=texte_a_ecrire; 
              } 
              </script> 
              <head> 
              <body onload="javascript:ecrire_bon_anniversaire('div_anniversaire');"> 
              <div align="center" id="div_anniversaire" ><strong> 
              
              </strong></div> 
              </body>


              Mais avec la methode que tu as choisie, il va falloir que tu modifie ton code pour rajouter un nouveau membre à chaque fois, si c'est un site en php avec base de données dans laquelle les mebres osnt inscrits, ce serait beaucoup plus facile de faire cela en php au moment de l'affichage de la page
              1. Au lieu de faire 2x une même ligne comme :
                if( mois_actuel == 6 && jour_actuel == 13) { sText = "Victor"; }
                if( mois_actuel == 6 && jour_actuel == 13) { sText = "Tanguy"; }

                Pourquoi ne pas simplement faire :
                if( mois_actuel == 6 && jour_actuel == 13) { sText = "Victor & Tanguy"; }