Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2008, 18:47
elbastardo
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 8 meses
Puntos: 1
Calendario PHP, cambiar funcionamiento

Hola gente del foro, espero que anden bien.
La cuestión es la siguiente, tengo un calendario hecho en PHP que muestra seleccionado siempre la fecha actual, tiene un menú con los meses y otro con los años. Lo uso para ver el archivo de ediciones de un diario online.

El problema está cuando se quiere ver otro mes y el calendario siempre vuelve al mes actual, no sé si me explico. La página que carga cuando se cambia es la del mes que se selccionó pero no se puede navegar en ese mes, ya que el calendario siempre marca el día de hoy.

Este es el calendario:

Código PHP:
<form>
  <tr><td><div id="siteBarra2">SELECCIONE LA FECHA QUE QUIERA VER</div></td></tr>
  <tr align="center">
    <td width="265">
<?
$fecha 
getdate(time());
if(isset(
$_GET["dia"]))$dia $_GET["dia"];
else 
$dia $fecha['mday'];
if(isset(
$_GET["mes"]))$mes $_GET["mes"];
else 
$mes $fecha['mon'];
if(isset(
$_GET["ano"]))$ano $_GET["ano"];
else 
$ano $fecha['year'];
$fecha mktime(0,0,0,$mes,$dia,$ano);
$fechaInicioMes mktime(0,0,0,$mes,1,$ano);
$fechaInicioMes date("w",$fechaInicioMes);
?>
    <select size="1" name="mes" class="m1" onchange="document.location = '/archivo.php?date=<?=$ano?>-' + document.forms[0].mes.value + '-<?=$dia?>'">
<?
$meses 
= Array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
for(
$i 1$i <= 12$i++){
  echo 
'      <option ';
  if(
$mes == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$meses[$i-1]."\n";
}
?>
    </select>&nbsp;&nbsp;&nbsp;<select size="1" name="ano" class="m1" onchange="document.location = '/archivo.php?date=' + document.forms[0].ano.value'-<?=$mes?>-<?=$dia?>'">
<?
for ($i $anoInicial$i <= $anoFinal$i++){
  echo 
'      <option ';
  if(
$ano == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$i."\n";
}
?>
    </select><br>
    <font size="1"></font><table border="0" align="center" cellpadding="2" cellspacing="0" width="280" class="m1" bgcolor="#FFFFFF" height="100%">
<?
$diasSem 
= Array ('L','M','M','J','V','S','D');
$ultimoDia date('t',$fecha);
$numMes 0;
for (
$fila 0$fila 7$fila++){
  echo 
"      <tr>\n";
  for (
$coln 0$coln 7$coln++){
    
$posicion = Array (1,2,3,4,5,6,0);
    echo 
'        <td width="14%" height="19"';
    if(
$fila == 0)echo ' bgcolor="#808080"';
    if(
$dia-== $numMes)echo ' bgcolor="#0A246A"';
    echo 
" align=\"center\">\n";
    echo 
'        ';
    if(
$fila == 0)echo '<font color="#D4D0C8">'.$diasSem[$coln];
    elseif((
$numMes && $numMes $ultimoDia) || (!$numMes && $posicion[$coln] == $fechaInicioMes)){
      echo 
'<a href="#" onclick="tratarFecha('.$ano.','.$mes.','.(++$numMes).')">';
      if(
$dia == $numMes)echo '<font color="#FFFFFF">';
      echo (
$numMes).'</a>';
    }
    echo 
"</td>\n";
  }
  echo 
"      </tr>\n";
}
?>
Esta es la función tratarFecha

Código PHP:
<?
$anoInicial 
'2008';
$anoFinal '2009';
$funcionTratarFecha 'document.location = "?date="+ano+"-"+mes+"-"+dia';
?><script>                                    
function tratarFecha(ano,mes,dia){
  <?=$funcionTratarFecha?>
}
</script>
A ver si alguno me puede dar una mano, no sé si me expliqué bien.


AGREGO: lo que yo quiero al final de cuentas es que cuando cambien para otro mes el calendario quede en ese mes y no vuelva a la fecha actual.

Saludos!