Tengo una selección de una fecha d inicio y otra de fin con menús desplegables tal y como se explica en la FAQ del manual de PHP en http://www.forosdelweb.com/showthre...8632#post308632
Pues bien, yo lo he hecho de forma q se va seleccionando primero el mes, luego el año y,
QUISIERA q en este punto, sabiendo lo q hay seleccionado, en el menú de los días solo aparezcan los días q tenga ese mes de ese año. Osea, en febrero 28 o 29 según el año.
Tengo la función para calcular los días de un mes y año dados pero...
NO SÉ cómo hacer para que, una vez seleccionado mes y año, se ejecute AUTOMATICAMENTE y carge en el menu los días oportunos.
Es q como lo tengo hecho lo carga todo desde el principio...
ME HAN DICHOP Q LA MEJOR SOLUCION SERIA POR JAVASCRIPT...pero no se cual es esa solución.
Q sería lo q tengo q hacer mediante javascript?
Os pongo el código de la selección de la primera fecha:
<?php
//funcion que devuelve el último día de un mes y año dados
function obtenerUltimoDia($mes,$ano){
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano)){
$ultimo_dia++;
}
return $ultimo_dia;
}
if ( ! isset ($diainicio) )
$diainicio=01;
if ( ! isset ($mesinicio) )
$mesinicio=01;
if ( ! isset ($anoinicio) )
$anoinicio=2002;
//si no hay algun dato de la fecha final definida, se toma la fecha actual
if (( ! isset ($diafin) ) || ( !isset ($mesfin) ) || ( !isset ($anofin) ))
{
// obtener la fecha en formato numérico dia . mes y año.
$diafin = date ("d");
$mesfin = date ("m");
$anofin = date ("Y");
}
// generamos el mes en formato "legible" y en castellano.
// para eso usaremos un array con los nombres de los messes . indice comienzo en 1
$meses_nombres=Array(1=>"Enero","Febrero","Marzo", "Abril","Mayo","Junio","Julio","Agosto","Septiembr e","Octubre","Noviembre","Diciembre");
// Ahora un bucle para generar dinamicamente los Options de un Select (de cada uno de dia mes y año).
// Si el nº de dia (mes, año) coincide con el actual .. poner el tag "selected" ...
echo "Fecha Inicio: ";
// Selección mes inicio
echo "<select name=\"mesinicio\">\n";
for ($contador=1; $contador <=12; $contador++){
if ($mesinicio==$contador){
echo "<option value=\"".$contador."\" selected>".$meses_nombres[$contador]."\n";
}else{
echo "<option value=\"".$contador."\">".$meses_nombres[$contador]."\n";
}
}
echo "</select>\n";
// Selección año inicio
echo "<select name=\"anoinicio\">\n";
for ($contador=2002; $contador <=2004; $contador++){
if ($anoinicio==$contador){
echo "<option value=\"".$contador."\" selected>".$contador."\n";
}else{
echo "<option value=\"".$contador."\">".$contador."\n";
}
}
echo "</select>\n";
// selección dia inicio
echo "<select name=\"diainicio\">\n";
$ultimo1= obtenerUltimoDia($mesinicio, $anoinicio);
for ($contador=1; $contador <=$ultimo1; $contador++){
if ($diainicio==$contador){
echo "<option value=\"".$contador."\" selected>".$contador."\n";
}else{
echo "<option value=\"".$contador."\">".$contador."\n";
}
}
echo "</select>\n";
echo "Fecha Fin: ";
AQUI SERIA LO MISMO Q LA FECHA DE INICIO
Espero q alguie pueda ayudarme.
Muchas gracias por adelantado.
Salu2