Afficher le nombre de jour d'un mois en fonction du mois selectionne

Monico9385 Messages postés 279 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 6 août 2007 - 18 avril 2005 à 15:46
livefr Messages postés 1 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 25 mai 2007 - 25 mai 2007 à 17:22
Bonjour tout le monde,



alors voila mon probleme:

j'ai 2 select, un contenant les mois numerotés de 01 à 12, et un autre
contenant les jours numérotés de 01 à 31. Sauf que j'aimerai que quand
on selectionne un mois, ca m'affiche le nombre de jours dans l'autre
select et tout ca en instantané, sans le faire passer en parametre.

Par exemple, si je choisis le mois 03, je vais avoir dans mon select
jour, les 31 possibles, mais si je pend 04, il m 'en faudrait que 30.



J'espere que c'est assez clair, et si possible aidez moi, j'en ai absolument besoin !!!!!



Merci d'avance
A voir également:

5 réponses

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
19 avril 2005 à 04:44
Salut!

Le script ne peut pas être éfficace sans l'apport de l'année qui détermine si le mois de février est bissextile ou pas. J'imagine que l'année est aussi saisie pas l'internaute ;-)

Un exemple :


<html>
<head>
<title>Untitled</title>
<script type= "text/javascript">
function loadMois()
{
annee = "2005"; // ou document.form.annee.value;
mois = document.form.mois.value;
target = new Date(annee, mois, 0);
nbJour = target.getDate();
jours = document.form.jour;
for (i=1;i<=31;i++)
{
j = document.createElement("OPTION");
j.text = i;
j.value = i;
if (nbJour>=i)
jours.options[i-1] = j;
else
jours.length = nbJour;
}
}

</script>
</head>

<form name ="form">
<select name="mois" onchange="loadMois()">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<select name="jour">
</select>
</form>

</html>

A+, Ghislain
0
Monico9385 Messages postés 279 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 6 août 2007
19 avril 2005 à 15:09
ouai c'est niquel, mais j 'arrive pas à récupérer l'année.

J'ai juste rajouté un select portant le nom annee mai ca marche pas:



<html>
<head>
<title>Untitled</title>
<script type= "text/javascript">
function loadMois()
{
annee = "2005"; // ou document.form.annee.value;
mois = document.form.mois.value;
target = new Date(annee, mois, 0);
nbJour = target.getDate();
jours = document.form.jour;
for (i=1;i<=31;i++)
{
j = document.createElement("OPTION");
j.text = i;
j.value = i;
if (nbJour>=i)
jours.options[i-1] = j;
else
jours.length = nbJour;
}
}

</script>
</head>

<form name ="form">

<select name="annee">

</select>
<select name="mois" onchange="loadMois()">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<select name="jour">
</select>
</form>

</html>
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
20 avril 2005 à 01:10
Salut!

Le problème c'est tu ne mettait rien dans ton select annee???

Par exemple :


<html>
<head>
<title>Untitled</title>
<script type= "text/javascript">
function loadAnnee()
{
Annee = document.form.annee;
an = new Date().getFullYear();
an_depart = an;
an_fin = an + 10;
for (i=an_depart, n=0;i<=an_fin;i++,n++)
{
j = document.createElement("OPTION");
j.text = i;
j.value = i;
Annee.options[n] = j;
}

}
function loadMois()
{
annee = document.form.annee.value;
mois = document.form.mois.value;
target = new Date(annee, mois, 0);
nbJour = target.getDate();
jours = document.form.jour;
for (i=1;i<=31;i++)
{
j = document.createElement("OPTION");
j.text = i;
j.value = i;
if (nbJour>=i)
jours.options[i-1] = j;
else
jours.length = nbJour;
}
}

</script>
</head>

<form name ="form">
<select name="annee" onchange="loadMois()">
</select>
<select name="mois" onchange="loadMois()">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<select name="jour">
</select>
</form>

</html>

Dans la fonction loadAnnee, la variable an contient l'année courante alors tu n'as qu'a affectée la variable an_depart et an_fin pour qu'elle représente bien les années que tu veux avoir dans le select année.

A+, Ghislain
0
Monico9385 Messages postés 279 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 6 août 2007
20 avril 2005 à 13:12
OK.



Merci beaucoup ca marche!!!
0

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

Posez votre question
livefr Messages postés 1 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 25 mai 2007
25 mai 2007 à 17:22
j'ai rajouter juste une modif pour garder le jour et le mois selectionné lors de l'update :

<html>
<head>
<title>Untitled</title>
<script type="text/javascript">
  function loadAnnee(){
    Annee = document.form.annee;
    an = new Date().getFullYear();
    an_depart = 2007;
    an_fin = an;
    for (i=an_depart, n=0;i<=an_fin;i++,n++){
      j = document.createElement("OPTION");
      j.text = i;
      j.value = i;
      if(Annee == i){
        j.setAttribute("selected", "selected");
      }
      Annee.options[n] = j;
    }
  }
 
  function loadMois(){
    annee = document.form.annee.value;
    mois = document.form.mois.value;
    day = document.form.jour.value;
    target = new Date(annee, mois, 0);
    nbJour = target.getDate();
    jours = document.form.jour;
    for (i=1;i<=31;i++){
      j = document.createElement("OPTION");
      j.text = i;
      j.value = i;
      if(day == i){
        j.setAttribute("selected", "selected");
      }
      if (nbJour>=i)
        jours.options[i-1] = j;
      else
        jours.length = nbJour;
    }
  }
 
  function init(){
    loadAnnee();
    loadMois() ;
    //loadDay();
  }

</script>
</head>

<form name="form">

<select name="jour">
</select>

<select name="mois" onchange="loadMois()">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7">Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>

<select name="annee" onchange="loadMois()">
</select>

</form>

</html>

LIVE
0
Rejoignez-nous