Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2008, 14:09
Faisca
 
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 15 años, 10 meses
Puntos: 0
Problemas con calendario

Hola a tod@s!

Tengo un problema con mi calendario. No soy muy experta con el PHP, por eso necesito mucha ayuda con esto.
Tengo un calendario con eventos y semanas.

Mis problemas son los siguientes:

1.- El calendario me "congela" el navegador al pasar a algunos meses en el pasado o en el futuro. No sé por qué y/o si tiene que ver con los eventos.

2.- Al mirar un evento en cualquier mes, el calendario me vuelve al mes actual al mostrarme el evento, lo cual llega a confundir mucho.

3.- Los números de la semana no se muestran correctamente... de momento, todas mis semanas están a 01... y no entiendo bien por qué. Además, cuando una semana se queda a medias, no me sale el num. de la semana correspondiente. Por ejemplo, si el último día de un mes cae en un miércoles, no me sale el num. correspondiente de la semana.

4.- Los meses en mi menú desplegable cambian junto con los meses de la barra superior que marca cada mes al ir de un mes a otro. Me gustaría que los meses en el menú desplegable se quedasen quietecitos.

Este es el código PHP de mi calendario:

<table border=0 cellspacing=0>
<?php
include("functions.php");
$tiempo_actual = time();
$dia_solo_hoy = date("d",$tiempo_actual);
if (!$_POST && !isset($_GET["nuevo_mess"]) && !isset($_GET["nuevo_anio"])){
$mess = $_GET['mess'];
$anio = $_GET['anio'];
}elseif ($_POST) {
$mess = $_POST["nuevo_mess"];
$anio = $_POST["nuevo_anio"];
}else{
$mess = $_GET["nuevo_mess"];
$anio = $_GET["nuevo_anio"];
}

if($mess == "" || $anio == ""){
$anio = date("Y");
$mess = date("n");
}
$ultimo = date("t",mktime(0, 0, 0, $mess, 1, $anio));
if($mess == '12' || $mess == '1'){
if($mess == '12'){
$next = 1;
$prev = $mess -1;
$anion = $anio + 1;
$aniop = $anio;
}
if($mess == '1'){
$next = $mess + 1;
$prev = 12;
$anion = $anio;
$aniop = $anio -1;
}
}else{
$next = $mess + 1;
$prev = $mess - 1;
$aniop = $anio;
$anion = $anio;
}
echo "<table width=200 height=10 cellspacing=6 cellpadding=0.5 border=0>
<tr>
<td colspan=8 align=center class=tit>
<table width=100% cellspacing=4 cellpadding=0.5 border=0><tr>
<td style=font-size:10pt;font-weight:bold;color:white><a href='".$_SERVER['PHP_SELF']."?mess=$prev&anio=$aniop' class=prev></a></td>
<td class='title'>$mes[$mess] $anio<td>
<td align=right style=font-size:10pt;font-weight:bold;color:white><a href='".$_SERVER['PHP_SELF']. "?mess=$next&anio=$anion' class=next></a></td> </table>";
echo '<tr>
<td width=14% align=center class=altn>M</td>
<td width=14% align=center class=altn>T</td>
<td width=14% align=center class=altn>O</td>
<td width=14% align=center class=altn>T</td>
<td width=14% align=center class=altn>F</td>
<td width=14% align=center class=altn>L</td>
<td width=14% align=center class=altn>S</td>
<td width=18% align=center class=altn>Vecka</td>
</tr>';
$diaa = "1";
$diaz = cargarmatriz($ultimo,$mess,$anio);
$j = 0;
while($diaa <= $ultimo){
$dia = date("D",mktime(0,0,0,$mess,$diaa,$anio)); # retorna el dia de la semana en letras...
$fecha = date("j",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia del mes en 01/31
$dia_semana = date("w",mktime(0,0,0,$mess,$diaa,$anio)); #retorna el dia de la semana en numero
$evento = $anio."-".$mes_num[$mess]."-".$fecha;
if($dia == "Mon"){

echo "</tr><tr>";
}
if($fecha == "1"){
$i=1;
while($i != $dia_semana){
echo "<td>&nbsp;</td>";
$i++;
}
}
if($anio == date("o") && $mes[$mess] == $mes[date("n")] && $fecha == date("j")){
if($fecha == $diaz[$j] ){
echo "<td class='tddia' align='center'><b><a href='index.php?evento=$evento' target='_self'>$fecha</a></b></td>";
$j++;
}else{

echo "<td class='calendario' align='center'><b>$fecha</b></td>";
}
}else{
if($fecha == $diaz[$j] ){
echo "<td class='tddia' align='center'><b><a href='index.php?evento=$evento' target='_self'>$fecha</a></b></td>";
$j++;
}else{

//Domingos
if ($dia_semana == 0){
echo "<td align='center' class='tddom'>$fecha</td>";
echo "<td align='center' class='week'>".strftime("%V", strtotime("$adate")). "</td>";
}else{

echo "<td align='center'>$fecha</td>";}
}
}
$diaa++;
}

echo "</tr>";
?>
</table>

<div id="fecha_drop">
<table>
<?

function formularioCalendario($mess,$anio){

echo '
<table width=200 align="center" cellspacing="1" cellpadding="1" border="0" class=tform>
<tr><form action="index.php? '.$_SERVER['PHP_SELF'].' " method="POST">';
echo '
<td align="center" valign="top">
<select name=nuevo_mess class="select_month">
<option value="1"';
if ($mess==1)
echo "selected";
echo'>Januari
<option value="2" ';
if ($mess==2)
echo "selected";
echo'>Februari
<option value="3" ';
if ($mess==3)
echo "selected";
echo'>Mars
<option value="4" ';
if ($mess==4)
echo "selected";
echo '>April
<option value="5" ';
if ($mess==5)
echo "selected";
echo '>Maj
<option value="6" ';
if ($mess==6)
echo "selected";
echo '>Juni
<option value="7" ';
if ($mess==7)
echo "selected";
echo '>Juli
<option value="8" ';
if ($mess==8)
echo "selected";
echo '>Augusti
<option value="9" ';
if ($mess==9)
echo "selected";
echo '>September
<option value="10" ';
if ($mess==10)
echo "selected";
echo '>Oktober
<option value="11" ';
if ($mess==11)
echo "selected";
echo '>November
<option value="12" ';
if ($mess==12)
echo "selected";
echo '>December
</select>
</td>';
echo '
<td align="center" valign="top">
<select name=nuevo_anio class="select_yr">';

for ($cont=2006;$cont<$anio+3;$cont++){
echo "<option value='$cont'";
if ($anio==$cont)
echo " selected";
echo ">$cont";
}
echo '
</select>
</td>';
echo '
<td colspan="1" align="center" valign="top"><input type="Submit" value="G&Aring;" class="button" /></td>
</table>

</form>';
}

formularioCalendario($mess,$anio);
?>

</table>

<div id="events">
<table>
<?
$evento = $_GET['evento'];
if(!isset($evento)){
$evento = date("Y-m-d");
}
$conexion = conectar();
$sql = "select * from eventos where fecha = '$evento'";
$res = query($sql);
if(mysql_num_rows($res) > 0){
while($fila = mysql_fetch_array($res)){
echo "<tr><td class='tdfecha'>".$fila['fecha']."</td></tr>
<tr><td class='tdevento'>".$fila['evento']."</td></tr>";
}
}else{
echo "<tr><td></td></tr>";
}
desconectar($conexion);


?>
</table>


Y esta es la web donde se puede ver el calendario en funcionamiento:

illumino.110mb.com

Muchas gracias por cualquier ayuda!!

N.