PHP - Fecha Formulario

   
Vista:

Fecha Formulario

Publicado por Orion (42 intervenciones) el 04/10/2017 20:22:37
Buenos días,

Tengo un formulario con Dia, Mes y Año. Tengo dos dudas al respecto a esto:

Mi codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<div class="row">
    <div class="col-sm-4 text-center">
        <label>Dia</label>
        <select class="form-control" name="day">
            <option></option>
            <?php
                for ($i=1; $i < 32; $i++) {
                  echo '<option value="'.$i.'">'.$i.'</option>';
                }
                ?>
        </select>
    </div>
    <div class="col-sm-4 text-center">
        <label>Mes</label>
        <select class="form-control" name="month">
            <option></option>
            <?php
                $meses = 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic';
                $explode = explode(',', $meses);
                for ($i=0; $i < 12; $i++) {
                  $mesvalue = $i+1;
                  if ($i > 8){
                    echo '<option value="'.$mesvalue.'">'.$explode[$i].'</option>';
                  }else{
                    echo '<option value="0'.$mesvalue.'">'.$explode[$i].'</option>';
                  }
                }
                ?>
        </select>
    </div>
    <div class="col-sm-4 text-center">
        <label>Año</label>
        <select class="form-control" name="year">
            <option></option>
            <?php
                $thedate = date('Y') - 16;
                $thelast = $thedate - 50;
                for ($i=$thelast; $i < $thedate; $i++) {
                  echo '<option value="'.$i.'">'.$i.'</option>';
                }
                ?>
        </select>
    </div>
</div>


1. Dia va del 1 al 31, sin embargo según el mes que sea los dias pueden ser 30, 31, 28 o 29 (si es bisiesto). ¿Como podria hacer para que según que mes elija de la lista el numero de dias a seleccionar varie?


2. Si doy a registarme sin haber completado ni dia, ni mes ni año, me sale un mensaje de validacion por cada uno. ¿Se podrian agrupar para que solo salga un mensaje de validacion al faltar cualquiera de los tres o los tres?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de santi

Fecha Formulario

Publicado por santi (139 intervenciones) el 06/10/2017 16:11:12
Hola,

te adjunto un código que encontré por internet que lo que hace es que al seleccionar el mes y el año, el día cambia según la elección del usuario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<label for="birthday">Birthday</label>
<div class="birthday-section">
  <div class="birthday">
    <div class="text-center">Day</div>
    <select id="days" name="day"></select>
  </div>
  <div class="birthday">
    <div class="text-center">Month</div>
    <select id="months" name="month"></select>
  </div>
  <div class="birthday">
    <div class="text-center">Year</div>
    <select id="years" name="year"></select>
  </div>
</div>

Y este es el jQuery:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script>
  //date
  $(function(){
 
      //populate our years select box
      for (i = new Date().getFullYear(); i > 1900; i--){
          $('#years').append($('<option />').val(i).html(i));
      }
      //populate our months select box
      for (i = 1; i < 13; i++){
          $('#months').append($('<option />').val(i).html(i));
      }
      //populate our Days select box
      updateNumberOfDays();
 
      //"listen" for change events
      $('#years, #months').change(function(){
          updateNumberOfDays();
      });
 
  });
 
  //function to update the days based on the current values of month and year
  function updateNumberOfDays(){
      $('#days').html('');
      month = $('#months').val();
      year = $('#years').val();
      days = daysInMonth(month, year);
 
      for(i=1; i < days+1 ; i++){
              $('#days').append($('<option />').val(i).html(i));
      }
  }
 
  //helper function
  function daysInMonth(month, year) {
      return new Date(year, month, 0).getDate();
  }
</script>

Pruebalo y nos comentas ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha Formulario

Publicado por Miguel (205 intervenciones) el 07/10/2017 00:04:28
Y tienes que utilizar forzosamente diferentes inputs? Porque también tienes el input tipo date...

1
<input type="date" class="form-control" name="fecha">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Fecha Formulario

Publicado por Orion (42 intervenciones) el 07/10/2017 12:09:22
Al final lo he solucionado con jquery-ui.

Muchas gracias por las respuestas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad