Foros del Web » Programando para Internet » PHP »

Calendario PHP, cambiar funcionamiento

Estas en el tema de Calendario PHP, cambiar funcionamiento en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/10/2008, 18:47
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 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!
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 10:58.