Un select date de naissance pour majeurs

Fermé
carosch - 13 févr. 2008 à 14:48
 carosch - 15 févr. 2008 à 11:41
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

Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
14 févr. 2008 à 14:39
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
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
13 févr. 2008 à 14:54
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
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
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
13 févr. 2008 à 15:54
Edit : Oups, j'ai rien dit...
0

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

Posez votre question
Enax Messages postés 203 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 16 mars 2010 145
14 févr. 2008 à 13:55
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
merci beaucoup je vais étudier ça

carosch
0