Ver Mensaje Individual
  #10 (permalink)  
Antiguo 21/09/2012, 16:21
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Juntar varias variables en una y mandarla desde un formulario

hay algo que se me escapa, o esto está mal enfocado. en primer lugar, cualquier validación seria debería hacerse con php, a lo suno usar ajax+php para mejorar la experiencia del usuario, en segundo, si el objetivo final es cargar esos datos en una bd, no le veo sentido a crear una nueva variable en javascript, cuando con los $_POST para dia, mes y año podés construir el formato que desees
Código PHP:
Ver original
  1. <form action="#" id="validar_fecha">
  2. <label for="nombre">Nombre </label> <input type="text" id="nombre" value="" name="nombre" />
  3. <p>Fecha de nacimiento</p>
  4. <p>
  5. <select name="dia" id="dia">
  6. <option value="">día</option>
  7. <?php for ($i = 1; $i <= 31 ; $i++) { ?>
  8. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  9. <?php } ?>
  10. </select>
  11. <select name="mes" id="mes">
  12. <option value="">mes</option>
  13. <?php for ($i = 1; $i <= 12 ; $i++) { ?>
  14. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  15. <?php } ?>
  16. </select>
  17. <select name="anio" id="anio">
  18. <option value="">año</option>
  19. <?php for ($i = 1920; $i <= 2011 ; $i++) { ?>
  20. <option value="<?php echo $i; ?>"><?php echo $i; ?></option>
  21. <?php } ?>
  22. </select>
  23. </p>

y en el php que procesa

Código PHP:
Ver original
  1. $dia = $_POST['dia'];
  2. $mes = $_POST['mes'];
  3. $anio = $_POST['anio'];
  4.  
  5. $fecha_nacimiento = "$dia/$mes/$anio"; //creas una cadena segun el criterio deseado

Finalmente, para validar fechas de nacimiento, no olvides el problema que representan loa años bisiestos

Código PHP:
Ver original
  1. <?php
  2. $dia = $_POST['dia'];
  3. $mes = $_POST['mes'];
  4. $anio = $_POST['anio'];
  5.  
  6. $validar = validarFecha($dia, $mes, $anio);
  7. if($validar !== false){
  8. $fecha_nacimiento = "$dia/$mes/$anio";
  9. }else{
  10. // error
  11. }
  12.  
  13. function validarFecha($dia, $mes, $anio){
  14.   if ($dia<0 || $dia>31 || $mes<0 || $mes >12)
  15.     $valida=false;
  16.   else
  17.     if (($mes==4 || $mes==6 || $mes==9 || $mes==11) && $dia > 30)
  18.       $valida=false;
  19.     else
  20.       if ($mes==2 && $dia>28+bisiesto($anio))
  21.         $valida=false;
  22.        else
  23.         $valida=true;
  24.   return $valida;
  25. }
  26.  
  27. function bisiesto($anio){
  28.   if ($anio%4!=0)
  29.     $bisiesto=false;
  30.   else
  31.     if ($anio%400==0)
  32.       $bisiesto=true;
  33.     else
  34.       if ($anio%100==0)
  35.         $bisiesto=false;
  36.       else
  37.         $bisiesto=true;
  38.   return $bisiesto;
  39. }
  40.  
  41. ?>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.