Un select date de naissance pour majeurs

Bonjour,
je voudrais insérer dans un formulaire un select pour la date de naissance de la personne
mais je voudrais qu'il soit possible seulement pour les personnes majeurs

est-ce que ça existe tout fait ?
ou bien un javascript pour le générer en fonction de la date du jour ?

merci d'avance
carosch

6 réponses

  1. Le code suivant devrait te convenir :
    <script type="text/javascript">
    	<!--
    	var dateActuelle = new Date();
    
    	function date()
    	{
    		if(document.getElementById("annee"+(dateActuelle.getFullYear() - 18)).selected == true)
    		{
    			for(i = (dateActuelle.getMonth() + 2) ; i <= 12 ; i++)
    				document.getElementById("mois"+i).style.display = "none";
    			for(i = (dateActuelle.getDate() + 1) ; i <= 31 ; i++)
    				document.getElementById("jour"+i).style.display = "none";
    			document.getElementById("mois").selected = true;
    			document.getElementById("jour").selected = true;
    		}
    		else
    		{
    			for(i = 1 ; i <= 12 ; i++)
    				document.getElementById("mois"+i).style.display = "block";
    			for(i = 1 ; i <= 31 ; i++)
    				document.getElementById("jour"+i).style.display = "block";
    		}
    	}
    	//-->
    </script>
    
    <select onclick="date();">
    	<option value="" id="annee">Année</option>
    	<?php	
    		for($i = 1900 ; $i <= (date('Y', time()) - 18) ; $i++)
    		{
    			echo '<option value="'.$i.'" id="annee'.$i.'">'.$i.'</option>';
    		}
    	?>
    </select>
    <select>
    	<option value="" id="mois">Mois</option>
    	<?php
    		for($i = 1 ; $i <= 12 ; $i++)
    		{
    			echo '<option value="'.$i.'" id="mois'.$i.'">'.$i.'</option>';
    		}
    	?>
    </select>
    <select>
    	<option value="" id="jour">Jour</option>
    	<?php	
    		for($i = 1 ; $i <= 31 ; $i++)
    		{
    			echo '<option value="'.$i.'" id="jour'.$i.'">'.$i.'</option>';
    		}
    	?>
    </select>


    Avec le même principe, tu peux également gérer les nombre de jour pour les mois qui n'en comptent pas 31 et les années bissextiles.
    2
    1. Pas suffisamment précis. Comment sais-tu que la personne est majeure ? Grâce à une réponse précédente dans le formulaire ? Et de quel type (select, radio, checkbox, autre) ?
      0
      1. en fait je voudrais que le select ne contienne que les dates possibles jusqu'à quelqu'un qui est majeur aujourd'hui

        j'en un select qui se génére automatiquement mais que pour l'année, donc la première valeur est 1990, mais ceux du mois de mars 1990 ne sont pas encore majeurs donc normalement je devrais pas pouvoir rentrer la date 1 mars 1990, dans mon formulaire j'aimerais que ça soit testé et refusé .

        je sais pas trop bien expliquer désolée

        mais ça empêche pas les gens de tricher sur leur âge, ça c'est sur

        carosch
        0
        1. Il faut passer par du Javascript.

          Comme je ne suis pas super calé en JS, je te donne le principe plutôt que du code faux :

          function selectionAnnee() // Quand l'utilisateur sélectionne une année dans la liste
          {
          	if(année == année actuelle - 18)
          	{
          		désactiver mois compris entre mois actuel et mois de décembre // display: none sur les option concernées, par exemple
          		désactiver jours compris entre jour actuel et 31
          	}
          	else
          	{
          		activer tous les mois
          		activer tous les jours
          	}
          }
          0
          1. merci beaucoup je vais étudier ça

            carosch
            0