Foros del Web » Programando para Internet » PHP »

Manteniendo activa las fechas seleccionadas en un formulario

Estas en el tema de Manteniendo activa las fechas seleccionadas en un formulario en el foro de PHP en Foros del Web. Hola. Estoy haciendo pruebas con un formulario que incluye fechas del día de nacimiento, mes y año, y a la vez si el usuario envía ...
  #1 (permalink)  
Antiguo 16/06/2011, 10:55
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años
Puntos: 65
Manteniendo activa las fechas seleccionadas en un formulario

Hola.

Estoy haciendo pruebas con un formulario que incluye fechas del día de nacimiento, mes y año, y a la vez si el usuario envía el formulario y uno de estos campos no está seleccionado que avise.

Si lo hago todo normal y sin un bucle como por ejemplo aquí me sale correcto:

Código PHP:
Ver original
  1. Fecha de nacimiento:                        
  2.         <select id="dianacimiento" name="dianacimiento" selected="Día">        
  3. <option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>        
  4. <option value="1" <?php if ($dianacimiento == '1') echo ' selected="selected"'; ?> >1</option>
  5. <option value="2" <?php if ($dianacimiento == '2') echo ' selected="selected"'; ?> >2</option>
  6. <option value="3" <?php if ($dianacimiento == '3') echo ' selected="selected"'; ?> >3</option>
  7. <option value="4" <?php if ($dianacimiento == '4') echo ' selected="selected"'; ?> >4</option>
  8. </select>
  9.          <?php     
  10.          if(isset($_POST['enviar']))
  11.          if ($dianacimiento != "" && $dianacimiento != "Día")
  12.          echo "Día de nacimiento $dianacimiento";
  13.          else {echo "Indique el día de nacimiento";}
  14.          ?>

A la hora de hacerlo con un bucle no logro la manera correcta:

Código PHP:
Ver original
  1. <select id="dianacimiento" name="dianacimiento" selected="Día">        
  2. <option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>
  3. <?php
  4. //-----------------
  5. for($dn=1;$dn<32;$dn++)
  6. echo "<option value=\"$dn\" <?php if ($dianacimiento == $dn) echo ' selected=\"selected\"'; ?>>$dn</option>";
  7. ?>

También a la hora de hacerlo con el mes y el año que lo tengo en un bucle no logro hacer que se queden seleccionados los campos:

Código PHP:
Ver original
  1. <select name="meses">
  2.          <option value="mes" selected>Mes:</option>
  3. <?php
  4. $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio", "Agosto","Septiembre","Octubre","Noviembre","Diciembre");    
  5. foreach ($meses as $i => $value)
  6.     echo'<option value="'.$meses[$i].'">'.$meses[$i].'</option>';
  7. ?>
  8. </select>  
  9. <?php      
  10.          if(isset($_POST['enviar']))
  11.          if ($meses[$i] != "" && $meses[$i] != "mes")
  12.          echo "Mes de nacimiento $meses[$i]";
  13.          else {echo "Indique el mes de nacimiento";}
  14.          ?>  
  15.          
  16.          <select id="anonacimiento" name="anonacimiento">
  17.          <option value="año" selected>Año:</option>    
  18.         <?php
  19.         for($n=1930;$n<=2011;$n++)
  20.         echo "<option value=\"{$n}\">{$n}</option>";
  21.         ?>
  22.           </select>
  23.           <?php        
  24.          if(isset($_POST['enviar']))
  25.          if ($anonacimiento != "" && $anonacimiento != "año:")
  26.          echo "Año de nacimiento $anonacimiento";
  27.          else {echo "Indique el año de nacimiento";}
  28.          ?>

¿Como podría meter y mantener esa opción de seleccionado dentro de estos bucles?

Saludos.
  #2 (permalink)  
Antiguo 16/06/2011, 11:17
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 2 meses
Puntos: 209
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

x q no intentas usar el plugin de jquery validate() para validar tu formulario
http://bassistance.de/jquery-plugins...in-validation/
  #3 (permalink)  
Antiguo 16/06/2011, 11:28
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años
Puntos: 65
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Hola iviamontes.

Hasta ahora no he probado ese plugin de jquery validate(), intento no usar javascript en lo posible ya que si lo desactivo del navegador no me sirve. De todas formas lo veo muy buena opción aunque me gustaría aprender lo más parecido pero solo con php.

Gracias
  #4 (permalink)  
Antiguo 16/06/2011, 17:46
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años
Puntos: 65
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Hola de nuevo.

Sí por ejemplo lo hago como citaba arriba solo con los días:

Código PHP:
Ver original
  1. Fecha de nacimiento:                        
  2. <select id="dianacimiento" name="dianacimiento" selected="Día">        
  3. <option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>        
  4. <option value="1" <?php if ($dianacimiento == '1') echo ' selected="selected"'; ?> >1</option>
  5. <option value="2" <?php if ($dianacimiento == '2') echo ' selected="selected"'; ?> >2</option>
  6. <option value="3" <?php if ($dianacimiento == '3') echo ' selected="selected"'; ?> >3</option>
  7. <option value="4" <?php if ($dianacimiento == '4') echo ' selected="selected"'; ?> >4</option>
  8. </select>
  9.          <?php      
  10.          if(isset($_POST['enviar']))
  11.          if ($dianacimiento != "" && $dianacimiento != "Día")
  12.          echo "Día de nacimiento $dianacimiento";
  13.          else {echo "Indique el día de nacimiento";}
  14.          ?>

Cuando lo quiero hacer lo mismo con un bucle si lo hago de esta manera se me queda marcado siempre 31:

Código PHP:
Ver original
  1. <option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>
  2.                    
  3. <?php
  4. //----------------- Aquí preparo el bucle de 31 días
  5. for($dn=1;$dn<32;$dn++)
  6. //echo "<option value=\"$dn\">$dn</option>";
  7. echo "<option value=\"$dn\"<?php if ($dianacimiento != \"\") echo ' selected=\"selected\"';>$dn</option>";  ?>
  8. ?>
  9. </select>

¿Por qué no me muestra primero Día:? si lo dejo solo de esta manera si empieza por día, pero claro luego no mantiene la opción marcada:

Código PHP:
Ver original
  1. echo "<option value=\"$dn\">$dn</option>";
  #5 (permalink)  
Antiguo 17/06/2011, 14:04
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años
Puntos: 65
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Hola de nuevo.

Ahora he conseguido cambiar el orden empezando por Día o Año según el caso y luego al elegir la opción correspondiente la reconoce perfectamente, sin embargo sigue sin guardar la opción pulsada cuando se envía y faltan datos:

Código PHP:
Ver original
  1. <select id="dianacimiento" name="dianacimiento" selected="Día">        
  2. <option value="Día">Día</option>                  
  3. <?php
  4. for($dn=1;$dn<32;$dn++)
  5. echo "<option value=\"$dn\" echo 'selected=\"selected\"'; >$dn</option>";
  6. ?>
  7.  <select id="anonacimiento" name="anonacimiento">
  8.  <option value="año" selected>Año:</option>    
  9. <?php
  10. for($n=1930;$n<=2011;$n++)
  11. echo "<option value=\"$n\" echo 'selected=\"selected\"'; >$n</option>";    
  12. ?>
  13. </select>

¿Como puedo mantener como seleccionado los día o el año después de enviar? Aun no veo la manera
  #6 (permalink)  
Antiguo 17/06/2011, 14:17
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 2 meses
Puntos: 845
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Que tal kahlito,

Estas dejando todos los options selected's, en realidad selected va a estar el que haya seleccionado el usuario, esto lo logras comparando el valor que tienes en $_POST con el valor del for, algo asi:

Código HTML:
Ver original
  1. <select id="dianacimiento" name="dianacimiento" >
  2. <?php for($dn = 1; $dn < 32; $dn++) : ?>
  3.     <option value="<?php echo $dn; ?>"
  4.         <?php if($dn == $_POST['dianacimiento']) : ?> selected="selected" <?php endif; ?> ><?php echo $dn; ?>
  5.     </option>
  6. <?php endfor; ?>

y seria el mismo concepto para el mes/año

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 17/06/2011, 14:27
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 1 mes
Puntos: 58
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Hola kahlito.

Cambia el bucle por esto:
Código PHP:
<?php
    
//-----------------
    
for($dn=1;$dn<32;$dn++){
      echo 
"<option value='$dn'";
      if (
$dianacimiento == $dn) {echo 'selected=\"selected\"';} 
      echo 
">".$dn."</option>";
    }  
?>
Creo que tenías algunos fallos. A ver si así te funciona.
  #8 (permalink)  
Antiguo 17/06/2011, 18:48
Avatar de kahlito
Colaborador
 
Fecha de Ingreso: marzo-2003
Ubicación: En el Estrecho y el mar
Mensajes: 2.936
Antigüedad: 21 años
Puntos: 65
Respuesta: Manteniendo activa las fechas seleccionadas en un formulario

Hola.

Efectivamente masterpuppet, estaba haciendo mal los select, y a la vez tenía algunos fallos como bien citas Nexus10.

Los dos ejemplos me sirven a la perfección también para meses y años.

Muchas gracias a los dos

Etiquetas: fechas, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:38.