Obtener fecha de nacimiento de persona

Iniciado por danipena78, 3 Julio 2011, 23:47 PM

0 Miembros y 1 Visitante están viendo este tema.

danipena78

Amigo miren como podria obtener la edad de una persona a partir de un formulario donde se ingresan la fecha de nacimiento-mes/ano utilizando menu despegables..

Pero me gustaria que me aparezca la edad en la siguiente linea. ademas reduci el codigo para ahorar espeacio.. como podria hacer.

aqui pongo el codigo.

Código (html4strict) [Seleccionar]
<td width="53"><form id="form8" name="form8" method="post" action="">
<label>
<select name="select2" size="0">
<option selected="selected">1</option>
<option>2</option>
<option>3</option>
</select>
</label>
</form> </td>
<td width="20"><span class="Estilo8">d/</span></td>
<td width="108"><form id="form9" name="form9" method="post" action="">
<label>
<select name="select3" size="0">
<option selected="selected">Enero</option>
<option>Febrero</option>
</select>
</label>
</form> </td>
<td width="20"><span class="Estilo8">m/</span></td>
<td width="43"><form id="form10" name="form10" method="post" action="">
<label>
<select name="select4" size="1">
<option>2000</option>
<option>2001</option>
</select>
</label>
</form>



saludos.

editado para poner el codigo con geshi

dark_sargon

Qué tal amigo.

Para reducir un poco el codigo puedes hacer uso de FOR de PHP en cada <option> de tu formulario, pues no se como se podría hacer para el mes pero lo puse para el día y el año.

Para calcular la edad usas javascript. Hay una funcion que se llama cuando hay un cambio en las listas desplegables.

Para saber la fecha actual puedes obtener la fecha del servidor con PHP o puedes obtener la fecha del usuario pero no es recomendable porque puede estar mal.

Esta es mi solución:
calculo.php
Código (html4strict) [Seleccionar]

<html>
<head>
   <title>Calcular edad</title>

   <script type="text/javascript" language="javascript">
     function cambiar(){
       var year = document.getElementById('year').value;
       var year_serv = <?php echo date('Y')?>;

       var edad = year_serv-year-1;

       if(document.getElementById('mes').value==<?php echo date('m')?>){
         if(document.getElementById('dia').value<=<?php echo date('d')?>){
           edad += 1;
          }
       }else if(document.getElementById('mes').value<=<?php echo date('m')?>){
         edad += 1;
       }

       document.getElementById('edad').value = edad;
     }
   </script>

</head>

<body>
   <?php
      
echo "Fecha del servidor: ".date('d/m/Y');
   
?>

<br/><br/>
   D&iacute;a: <select id="dia" onChange="cambiar()">
      <?php 
        
for($i=1$i<32$i++){
          echo 
"<option value='".$i."'>".$i."</option>\n";
        }
      
?>

   </select>
<br/>
   Mes: <select id="mes" onChange="cambiar()">
      <option value="1">Enero</option>
      <option value="2">Febrero</option>
      <option value="3">Marzo</option>
      <option value="4">Abril</option>
      <option value="5">Mayo</option>
      <option value="6">Junio</option>
      <option value="7">Julio</option>
      <option value="8">Agosto</option>
      <option value="9">Septiembre</option>
      <option value="10">Octubre</option>
      <option value="11">Noviembre</option>
      <option value="12">Diciembre</option>
   </select>
<br/>
   A&ntilde;o: <select id="year" onChange="cambiar()">
      <?php 
        
for($i=1950$i<2012$i++){
          echo 
"<option value='".$i."'>".$i."</option>\n";
        }
      
?>

   </select>
<br/>
<br/>
Tu edad es: <input type="text" id="edad" />
</body>
</html>


El algoritmo (javascript) no lo pensé mucho  ;D.. puede estar mal así que pruébalo.

Un saludo.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

dark_sargon

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

danipena78

Voila :=)

Amigo es Perfectisimo justo pero justo lo que necesitaba voila.

Solo un ayuda mas please.

como haria para enviar los datos a la BASE DE DATOS..

osea cuales serian las variables.


Gracias Amigo.

Eres un genio :=)

EFEX

Cita de: danipena78 en  4 Julio 2011, 07:16 AM
Voila :=)
Amigo es Perfectisimo justo pero justo lo que necesitaba voila.
Solo un ayuda mas please.
como haria para enviar los datos a la BASE DE DATOS..
osea cuales serian las variables.
Gracias Amigo.
Eres un genio :=)

¿Hablas de pasar valores javascript a php?, en ese caso creo que no se puede por que javascript se ejecuta en el cliente y php en el servidor, la solucioòn seria usar ajax.
GITHUB 

dark_sargon

Cita de: danipena78 en  4 Julio 2011, 07:16 AM
Voila :=)

Amigo es Perfectisimo justo pero justo lo que necesitaba voila.

Solo un ayuda mas please.

como haria para enviar los datos a la BASE DE DATOS..

osea cuales serian las variables.


Gracias Amigo.

Eres un genio :=)

Qué bueno que te haya servido.

Ahora lo que hay que hacer es ponerle un nombre a cada uno de los 3 <select> y si quieres al campo de la edad. También debes poner un formulario que encierre los campos cuyo valor deseas recoger. Por último agrega un botón tipo submit dentro del formulario y ya está.
Luego haces tu script que reciba los datos y los ponga en la BD... puede ser con POST o GET.

Nota: puedes deshabilitar el campo de edad si quieres que el usuario no edite tan facilmente su valor:
Código (html4strict) [Seleccionar]

...
Tu edad es: <input type="text" id="edad" disabled />
...


Un saludo.
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.