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 :

[POO] afficher les mois de l'année dans une boucle


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut [POO] afficher les mois de l'année dans une boucle
    Bonjour ,

    Toujours dans mon apprentissage du Javascript , j'ai ue question à vous soumettre.
    Je dois réaliser un formulaire avec une liste déroulante des mois de l'année et un champ texte pour l'année dans le but de récupérer une date.

    Je pensais faire une boucle pour afficher les mois de l'année mais du coup je ne sais pas où placer le code ou comment appeler la fonction.

    Est il possible de mettre entre les balises head une fonction du type :

    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
     
      <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script language="javascript" >
     
            function lesMois()
            {
                var lesMois = new Array ("janvier","février","mars","avril","mai","juin","juillet","août","septembre",
                    "octobre","novenbre","Décembre") ;
                for (var i=0 ;i< 12;i++)
                   <option> lesMois[i] </option> ;
     
                }
     
        </script>
      </head>
    du coup comment et d'où j'appelle mon script,je pensais à quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form name="form1" action="test.php" method="post">
              <!--Une liste de sélection pour les mois-->
              <select name="lesmois" onload="lesMois();">
                              
              </select>
    Voilà j'espère ne pas abuser de votre patience et Merci d'avance

  2. #2
    darthmower
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (var i=0 ;i< 12;i++)
                   <option> lesMois[i] </option> ;
     
    }
    cela ne devrait pas marcher ceci. Il faut que tu les inscrives dans le code html donc via document.write mais pas du tout adapter soit avec du dom qui est beaucoup plus adapté.

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par darthmower Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (var i=0 ;i< 12;i++)
                   <option> lesMois[i] </option> ;
     
    }
    cela ne devrait pas marcher ceci. Il faut que tu les inscrives dans le code html donc via document.write mais pas du tout adapter soit avec du dom qui est beaucoup plus adapté.
    document.write()

    Utilise les fonctions DOM.
    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
     
    function AfficherMois()
    {
      var liste;
      var mois = new Array ("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novenbre","Décembre") ;
      var i, op;
     
      liste = document.createElement("select");
      document.body.appendChild(liste);
      for (i=0; i<mois.length; i++)
      {
        op = new Option(mois[i], "", false, false);
        liste.options.add(op);
      } 
    }

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Merci ,

    Donc si j'ai bien compris l'apprentissage de javascript/Dom est presque indispensable pour faire des choses interessantes.
    Merci,je me replonge dans les liens que tu m'as donnés Auteur.

    Merci à tous

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par une_tite_question Voir le message
    Donc si j'ai bien compris l'apprentissage de javascript/Dom est presque indispensable pour faire des choses interessantes.
    tout à fait... En utilisant les fonctions appropriées tu ne risques pas d'avoir de mauvaises surprises

    Mais surtout, oublie document.write() et utilise avec parcimonie innerHTML

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Ok je marque ce post comme résolu.
    Merci

  7. #7
    darthmower
    Invité(e)
    Par défaut
    J'ai bien dit que document.write() n'était pas adapté u_u et que le dom l'était.

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par darthmower Voir le message
    J'ai bien dit que document.write() n'était pas adapté u_u et que le dom l'était.
    je n'ai pas dit le contraire

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par darthmower Voir le message
    J'ai bien dit que document.write() n'était pas adapté u_u et que le dom l'était.
    C'est ce que j'ai compris A+ pour d'autres questions

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    Bonsoir,
    Excusez moi de réouvrir cette discussion qui est censée être résolu.
    Je viens de lire des tutos javascipt + Dom et je ne comprends pas
    la partie en gras du code qui a été mis plus haut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function AfficherMois()
    {
      var liste;
      var mois = new Array ("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novenbre","Décembre") ;
      var i, op;
      
      liste = document.createElement("select");
      document.body.appendChild(liste);
      for (i=0; i<mois.length; i++)
      {
        op = new Option(mois[i], "", false, false);
        liste.options.add(op);  } 
    }
    Ce que je ne comprends pas :
    Pour créer les balises <option> pourquoi ne passe t-on pas par un
    document.createElement("option").Bien que je ne sais pas comment je pourrais ajouter les mois car dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option> mois[i] </option>
    mois[i] n'est pas un attribut on ne peut pas faire setAttribute.
    Si vous m'aider à comprendre je vous serai très reconnaissant.
    Merci

  11. #11
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        op = new Option(mois[i], "", false, false); // création d'une option
        liste.options.add(op);  //ajout de l'option dans la liste (ajout à la fin de la liste)

    Option() est un objet javascript qui prend 4 paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new Option("Text","Value", "defaultSelected", "selected");
    • Text => texte affiché entre les balises <option> (dans l'exemple c'est le contenu de la variable mois[i]) ;
    • Value => attribut value de la balise option (dans l'exemple, je n'ai pas donné de valeur) ;
    • defaultSelected => option sélectionnée par défaut (true ou false) ;
    • selected => sélectionner cette option (true ou false).

    Les deux derniers paramètres ne sont pas toujours pris en charge par les navigateurs, c'est pour cette raison que j'ai écrit "false" dans le code.

    Il est vrai que l'on peut utiliser createElement("option") (même si j'ai rarement vu un code utilisant cette possibilité), mais l'objet Option() est quand même plus pratique à utiliser

    Avec l'objet Option tu peux toujours préciser des paramètres par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    op = new Option(mois[i], "", false, false);
    op.id = "idOption";
    op.selected = "selected";

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Points : 134
    Points
    134
    Par défaut
    OK merci.
    Cette fois c'est bon je pense que je ne réouvrirai plus ce post.

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/01/2010, 09h53
  2. Afficher les images d'un dossier dans une IHM
    Par danathane dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2008, 15h27
  3. Réponses: 7
    Dernier message: 18/01/2007, 15h03
  4. Afficher les élements d'un formulaire dans une autre fenetre
    Par BernardT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2005, 22h52

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