Dividir Datepicker en dia mes y año

publicado por: Anonymous

tengo un form con un DatePicker, que me envia por post la fecha completa.

       <div class="input-group date form_date" data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd">
              <input class="form-control" size="16" type="text" value="" readonly placeholder="Ingrese su fecha de nacimiento">
                           <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>
          </div>

Por otro lado en el back esta esperando 3 variables distintas, un dia, un mes y un año.

  $dia=$_POST(curriculum_vitae[fecha_nacimiento][day]);
  $mes=curriculum_vitae[fecha_nacimiento][month]
  $anio=curriculum_vitae[fecha_nacimiento][year]

No puedo cambiar el back, entonces como haría para descomponer lo que manda el datepicker y mandarlo en 3 valores?

Gracias!!!

solución

Si no puedes cambiar el backend y sólo puedes resolverlo en el front, no te queda otra que enviarle exactamente lo que espera el back.
Entonces, lo que puedes hacer son estos pequeños cambios en el form:

1) Una función que se ejecute en el evento submit del formulario.

2) Agregar unos campos ocultos que contendrán la información tal cual la necesita el backend.

3) Agregar un id al input del datepicker para poder tomar su valor directamente.

Resumido, así:

<form onsumit="return form_submit()">
   <input type="hidden" id="fn_day"   name="fecha_nacimiento[day]">
   <input type="hidden" id="fn_month" name="fecha_nacimiento[month]">
   <input type="hidden" id="fn_year"  name="fecha_nacimiento[year]">
   ...
   <input id="dp_fn" class="form-control" size="16" type="text" value="" readonly placeholder="Ingrese su fecha de nacimiento">
   ...
</form>

La función form_submit lo que hace es tomar el valor del datepicker y repartirlo entre los tres campos ocultos:

<script>
function form_submit()
{
    // Suponiendo que el input tenga una fecha en formato DD MM YYYY,
    // separar el valor por los espacios:
    var date = $('#dp_fn').val().split(' ');

    // Asignar cada parte de la fecha al campo oculto correspondiente:
    $('#fn_day').val(date[0]);
    $('#fn_month').val(date[1]);
    $('#fn_year').val(date[2]);

    // Realizar el submit del formulario
    return true;
}
</script>

De esta manera, al backend debería llegar:

$_POST['fecha_nacimiento']['day']
$_POST['fecha_nacimiento']['month']
$_POST['fecha_nacimiento']['year']
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *