Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/01/2004, 14:17
Cluster
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.