Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2008, 18:55
elbastardo
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Calendario PHP - ayuda

Hola, replanteo este tema ya que necesito resolverlo y no he obtenido respuesta.
El anterior quedó entreveradísimo.

Tengo este calendario:

Código PHP:
<?
$anoInicial 
'2008';
$anoFinal '2009';
$funcionTratarFecha 'document.location = "?date="+ano+"-"+mes+"-"+dia';
?><script>                                    
function tratarFecha(ano,mes,dia){
  <?=$funcionTratarFecha?>
}
</script>

<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";
}
?>
Cuando se cambia de mes vuelve siempre al mes actual, yo quiero que cuando cambien de mes siga en que se eligió.

Alguien me puede dar una mano u orientación?


$numMes lo define con 0 para elegir la fecha actual pero después nunca cambia, podría ser por ahí que ande mal?

Gracias de antemano.