Foros del Web » Programando para Internet » PHP »

poner fecha en select

Estas en el tema de poner fecha en select en el foro de PHP en Foros del Web. Hola a todos, ok, he buscado informacion en este foro sobre mi pregunta por que no me gustaria repetir, pero no encontre, espero no se ...
  #1 (permalink)  
Antiguo 17/01/2004, 13:02
 
Fecha de Ingreso: noviembre-2002
Ubicación: Veracruz
Mensajes: 48
Antigüedad: 21 años, 5 meses
Puntos: 0
poner fecha en select

Hola a todos, ok, he buscado informacion en este foro sobre mi pregunta por que no me gustaria repetir, pero no encontre, espero no se haya pasado alguna por ahi...

Ok, duda es la siguiente:

En mi formulario el usuario debe registrar la fecha apartir quiere iniciar contrato.... cada contrato tiene tiempo limite de 30 dias, en el formulario tengo 3 select esto distribuido asi

diainicial -->select1 mesinicial--->select2 añoinicial-->select3

lo que quiero es que cuando active la pagina estos select se carguen con el dia, mes y año actual, claro sin que pierdan sus valores, ya que cada combo tiene los datos...

entonces una vez que pase eso que se calcule automaticamente los 30 dias para el siguiente los siguientes combos

diafinal-->select4 mesfinal--->select5 añofinal--->select6

no he podido realizar la primera etapa de colocar la fecha acual dentro de los tres primero select... espero que alguien pueda ayudarme....
  #2 (permalink)  
Antiguo 17/01/2004, 14:13
 
Fecha de Ingreso: noviembre-2002
Ubicación: Veracruz
Mensajes: 48
Antigüedad: 21 años, 5 meses
Puntos: 0
alguien que me ayude
  #3 (permalink)  
Antiguo 17/01/2004, 14:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo ideal es que lo hagas en Javascript .. el problema de esto sería sobre las fechas (serían tomadas del cliente y seguramente lo que te interesa es que sean tomadas del servidor).

Si lo vas hacer en PHP (por lo menos el primer combo para inciar la fecha) .. Se trata de componer usar un bucle para generar los dias/meses/años que quieras presentar y "preseleccionarlo" con la opción "selected" que tienen los tag HTML de select (en sus option) .. para eso .. te hará falta obtener la fecha (dia, etc) por su orden "cardinal" para poder compararlo con un condicional que ponga o no el "selected" donde corresponda.

Te pongo el ejemplo para los dias ...

Código PHP:
<?
echo "<select name=\"dia\">\n";
for (
$dia=1$dia<=31$dia++){
   if (
date("j")==$dia){
      echo 
"<option value=\"".$dia."\" selected>".$dia."</option>\n";
   } else {
      echo 
"<option value=\"".$dia."\">."$dia."</option>\n";
   }
}
echo 
"</select>\n";
?>
Visita el manual oficial de PHP para ver los parámetros de date() y así obtener el mes (en numero) .. Los años sólo tienes que usar un bucle desde el 19??? al año que desees .. y obtener con date() el año en número (y cuatro cifras o dos como tu veas).

Como te estarás dando cuenta ... se genera dias del 1 al 31 .. y no todos los meses tienen esos 31 dias .. Para eso puedes chekear en última instancia en PHP la fecha que ha generado desde esos select con la función:

checkdate()

También podrías "recargar" otra vez la página ante cada cambio del "mes" para generar los dias deacuerdo al mes que corresponde. Con date("t",$fecha_completa) podrías obtener si el mes tiene 31 o 28 dias .. siendo el resto 30 dias. Pero !ojo! .. ya serían demasiadas recargas de página (insisto . javascript va mejor para estos casos, lo cual no quiere decir que no se pueda hacer desde PHP).

El cálculo de los 30 dias + sobre esa fecha del 1er select .. sería ideal que lo resolvieses en Javascirpt .. si lo haces desde PHP vas a tener que recargar la página para poder generear nuevamente esa página con esos select en sus nuevos valores predefinidos.

Por si quieres hacerlo en PHP .. para no perder los valores se trata exactametne de lo mismo que con el "if" para el date() .. tienes que recoger el valor de tu select y si es = al que estás presentando (con el bucle .. ) ese será el que tienes que hacer el "selected" .. Ademas tendrás que considerar si está definida tu variable "dia" o la que corresponda para usar date() y predefinir la fecha actual . o bien la que yá eligió .. Para eso .. funciones como isset() o empty() te ayudarán ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 17/01/2004, 14:54
 
Fecha de Ingreso: noviembre-2002
Ubicación: Veracruz
Mensajes: 48
Antigüedad: 21 años, 5 meses
Puntos: 0
ok, muchas gracias checare la informacion y comento los resultados
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 17:55.