Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: danipena78 en 3 Julio 2011, 23:47 pm



Título: Obtener fecha de nacimiento de persona
Publicado por: danipena78 en 3 Julio 2011, 23:47 pm
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
  1. <td width="53"><form id="form8" name="form8" method="post" action="">
  2. <select name="select2" size="0">
  3. <option selected="selected">1</option>
  4. </select>
  5. </label>
  6. </form> </td>
  7. <td width="20"><span class="Estilo8">d/</span></td>
  8. <td width="108"><form id="form9" name="form9" method="post" action="">
  9. <select name="select3" size="0">
  10. <option selected="selected">Enero</option>
  11. <option>Febrero</option>
  12. </select>
  13. </label>
  14. </form> </td>
  15. <td width="20"><span class="Estilo8">m/</span></td>
  16. <td width="43"><form id="form10" name="form10" method="post" action="">
  17. <select name="select4" size="1">
  18. <option>2000</option>
  19. <option>2001</option>
  20. </select>
  21. </label>
  22. </form>


saludos.

editado para poner el codigo con geshi


Título: Re: Obtener fecha de nacimiento de persona
Publicado por: dark_sargon en 4 Julio 2011, 06:15 am
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
  1.   <title>Calcular edad</title>
  2.  
  3.   <script type="text/javascript" language="javascript">
  4.     function cambiar(){
  5.       var year = document.getElementById('year').value;
  6.       var year_serv = <?php echo date('Y')?>;
  7.  
  8.       var edad = year_serv-year-1;
  9.  
  10.       if(document.getElementById('mes').value==<?php echo date('m')?>){
  11.         if(document.getElementById('dia').value<=<?php echo date('d')?>){
  12.           edad += 1;
  13.          }
  14.       }else if(document.getElementById('mes').value<=<?php echo date('m')?>){
  15.         edad += 1;
  16.       }
  17.  
  18.       document.getElementById('edad').value = edad;
  19.     }
  20.   </script>
  21.  
  22. </head>
  23.  
  24.   <?php
  25.      echo "Fecha del servidor: ".date('d/m/Y');
  26.   ?>
  27. <br/><br/>
  28.   D&iacute;a: <select id="dia" onChange="cambiar()">
  29.      <?php
  30.        for($i=1; $i<32; $i++){
  31.          echo "<option value='".$i."'>".$i."</option>\n";
  32.        }
  33.      ?>
  34.   </select>
  35. <br/>
  36.   Mes: <select id="mes" onChange="cambiar()">
  37.      <option value="1">Enero</option>
  38.      <option value="2">Febrero</option>
  39.      <option value="3">Marzo</option>
  40.      <option value="4">Abril</option>
  41.      <option value="5">Mayo</option>
  42.      <option value="6">Junio</option>
  43.      <option value="7">Julio</option>
  44.      <option value="8">Agosto</option>
  45.      <option value="9">Septiembre</option>
  46.      <option value="10">Octubre</option>
  47.      <option value="11">Noviembre</option>
  48.      <option value="12">Diciembre</option>
  49.   </select>
  50. <br/>
  51.   A&ntilde;o: <select id="year" onChange="cambiar()">
  52.      <?php
  53.        for($i=1950; $i<2012; $i++){
  54.          echo "<option value='".$i."'>".$i."</option>\n";
  55.        }
  56.      ?>
  57.   </select>
  58. <br/>
  59. <br/>
  60. Tu edad es: <input type="text" id="edad" />
  61. </body>
  62. </html>
  63.  

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

Un saludo.


Título: Re: Obtener fecha de nacimiento de persona
Publicado por: dark_sargon en 4 Julio 2011, 06:20 am
Te dejo un link para que pruebes el script: http://www.actimediaonline.com/calculo.php


Título: Re: Obtener fecha de nacimiento de persona
Publicado por: 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 :=)


Título: Re: Obtener fecha de nacimiento de persona
Publicado por: EFEX en 4 Julio 2011, 12:37 pm
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.


Título: Re: Obtener fecha de nacimiento de persona
Publicado por: dark_sargon en 4 Julio 2011, 18:28 pm
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
  1. ...
  2. Tu edad es: <input type="text" id="edad" disabled />
  3. ...
  4.  

Un saludo.