Bueno compañeroz hice lo que pude xDDD
no mentiras ahi le cacharrie hasta que encontre lo que necesitaba, les comparto para que puedan enteder lo que hice y para los que no saben... emmm ps puedan saber xD
aqui les va el codigo:
Fecha de nacimiento:
supongamos q tenemos un formulario:
Código HTML:
<form action="ingresar.php" method="post" name="agregar" id="agregar">
aqui estan los combos que se van a cargar
Código PHP:
<div id="div_dia">
<select name="anho" id="anho">
<?php
$a1=1960;
$a2=date("Y");
$a2=$a2-3;
for($a2;$a2>=$a1;$a2--){
?>
<option onclick="valida_febrero()" value="<?php echo $a2; ?>"><?php echo $a2; ?></option>;//si cambia el año valida si se tiene seleccionado febrero para que se recarguen los dias
<?php
}
?>
</select>
<select name="mes" id="mes">
<?php
$m1=1;
$m2=12;
for($m1=1;$m1<=$m2;$m1++){
if($m1>=1 && $m1<=9){
$mes_n="0".$m1;
}
else{
$mes_n=$m1;
}
$mes_l= nombre_mes($m1);
?>
<!--//cargadia es la funcion para que cargue el dia-->
<option onclick="cargadia('<?php echo $mes_n; ?>')" <?php if($mes_l=="Enero"){echo "selected='selected'";} ?> value="<?php echo $mes_n; ?>"><?php echo $mes_l; ?>
</option>
<?php
}
?>
</select>
<select name="dia" id="dia">
<?php
for($aux_dia=1;$aux_dia<=31;$aux_dia++){
?>
<option value="<?php echo $aux_dia; ?>"><?php echo $aux_dia; ?></option>
<?php
}
?>
<script>
valida_febrero(); //valida el mes de febrero por si se cambia el año
</script>
</select>
bueno luego de eso veamos que funciones hay:
seria bueno que las pusieran en este orden que les voi a poner y antes de el codigo anteriormente puesto.
Código PHP:
<script>
function llenar_mes(fin){ //llena el select de dias segun el mes(y tal ves año)
for(i=1;i<=fin;i++){//hacemos un ciclo segun los dias
opc=new Option(i,i);//agregamos la opcion
//if(i!=0){
document.forms.agregar.dia.options[i]=opc;//la implementamos al select
//}
}
}
/*esta funcion saca los dias que tiene el mes seleccionado, si es febrero tambien hace la operacion sobre el año para saber si es bisciesto*/
function cargadia(mes_a){
//borramos las opciones que tenia el select "dia"
var combo = document.getElementById('dia');
var numero_o = combo.options.length;
var j=0;
for(j=0;j<=numero_o-1;j++){
combo.options[j]=null;
}
//agregamos los dias correspondientes al mes
var mes = mes_a;
var anho = document.getElementById('anho').value;
var i=1;
//si el mes es febrero
if(mes=="02"){
//si es bisiesto
if ((anho % 4 == 0) && ((anho % 100 != 0) || (anho % 400 == 0))){
llenar_mes(29);
combo.options[0]=null;//tenia unos errores raros, no se cuales pero con eso lo controlo
}
//si no es bisiesto
else{
llenar_mes(28);
combo.options[0]=null;
}
}
//meses de 31:
if(mes=="01" || mes=="03" || mes=="05" || mes=="07" || mes=="08" || mes=="10" || mes=="12"){
llenar_mes(31);
combo.options[0]=null;
}
//meses de 30
if(mes=="04" || mes=="06" || mes=="09" || mes=="11"){
llenar_mes(30);
combo.options[0]=null;
}
}
//la funcion de validar febrero por si se cambia el año teniendo febrero seleccionado
function valida_febrero(){
//cojemos el mes seleccionado (por si no es febrero
var mes_esc = document.getElementById('mes').value;
//borramos de nuevo
var combo = document.getElementById('dia');
var numero_o = combo.options.length;
var j=0;
for(j=0;j<=numero_o;j++){
combo.options[j]=null;
}
//mandamos el mes otra ves a la funcion
cargadia(mes_esc);
}
</script>
//esta funcion es para poner el nombre del mes:
<?php
setlocale(LC_ALL,"es_ES@euro","es_ES","esp");
function nombre_mes($mes_dado){
if($mes_dado==1){$nombre_del_mes="Enero";return $nombre_del_mes;}
if($mes_dado==2){$nombre_del_mes="Febrero";return $nombre_del_mes;}
if($mes_dado==3){$nombre_del_mes="Marzo";return $nombre_del_mes;}
if($mes_dado==4){$nombre_del_mes="Abril";return $nombre_del_mes;}
if($mes_dado==5){$nombre_del_mes="Mayo";return $nombre_del_mes;}
if($mes_dado==6){$nombre_del_mes="Junio";return $nombre_del_mes;}
if($mes_dado==7){$nombre_del_mes="Julio";return $nombre_del_mes;}
if($mes_dado==8){$nombre_del_mes="Agosto";return $nombre_del_mes;}
if($mes_dado==9){$nombre_del_mes="Septiembre";return $nombre_del_mes;}
if($mes_dado==10){$nombre_del_mes="Octubre";return $nombre_del_mes;}
if($mes_dado==11){$nombre_del_mes="Noviembre";return $nombre_del_mes;}
if($mes_dado==12){$nombre_del_mes="Diciembre";return $nombre_del_mes;}
}
?>
Espero que funcione, si tiene algunos errores pues los corrigen, si qieren cambiarle las cosas pues obvio las cambian, espero que les sirva a los que lo necesitan y no se olviden de agradecer.