Ver Mensaje Individual
  #13 (permalink)  
Antiguo 03/07/2011, 19:49
Avatar de Flakiss
Flakiss
 
Fecha de Ingreso: septiembre-2009
Mensajes: 113
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Calendario Php

Hola

Perdon por lo desaparecida... Yo en su tiempo lo hice asi.
Selecciono el mes y año y devuelvo por medio de jquery el diseño correspondiente al mes.

espero te sirva.
No olvides descargar el archivo jquery de su pagina oficial.
luego creas un "index.php" e insertas el primer codigo
y luego creas un archivo "mes_mini.php" y pones el resto del codigo.

1º HTML QUE CARGA LAS LISTBOX DE MES Y AÑO Y LLAMA LA FUNCION GetMiniMenu()
/**********index.php****************/
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function GetMiniMenu(mes){
$.ajax({
type: "POST",
url: "mes_mini.php",
data: "mes="+$("#select_mes").val()+"&anio="+$("#select_ anio").val(),
success: function(resp){
$("#mini_calendario").html(resp);
}
});
}
</script>
<table width="245" border="0">
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td><select name="select_mes" id="select_mes" onChange="GetMiniMenu()">
<option value="1" <? if(date('m') == 1){echo "selected";}?>>Enero</option>
<option value="2" <? if(date('m') == 2){echo "selected";}?>>Febrero</option>
<option value="3" <? if(date('m') == 3){echo "selected";}?>>Marzo</option>
<option value="4" <? if(date('m') == 4){echo "selected";}?>>Abril</option>
<option value="5" <? if(date('m') == 5){echo "selected";}?>>Mayo</option>
<option value="6" <? if(date('m') == 6){echo "selected";}?>>Junio</option>
<option value="7" <? if(date('m') == 7){echo "selected";}?>>Julio</option>
<option value="8" <? if(date('m') == 8){echo "selected";}?>>Agosto</option>
<option value="9" <? if(date('m') == 9){echo "selected";}?>>Septiembre</option>
<option value="10" <? if(date('m') == 10){echo "selected";}?>>Octubre</option>
<option value="11" <? if(date('m') == 11){echo "selected";}?>>Noviembre</option>
<option value="12" <? if(date('m') == 12){echo "selected";}?>>Diciembre</option>
</select>
&nbsp;&nbsp;&nbsp;
<select name="select_anio" id="select_anio" onChange="GetMiniMenu()">
<option value="2010" <? if(date('Y') == 2010){echo "selected";}?>>2010</option>
<option value="2011" <? if(date('Y') == 2011){echo "selected";}?>>2011</option>
<option value="2012" <? if(date('Y') == 2012){echo "selected";}?>>2012</option>
</select> </td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td align="center" id="mini_calendario" ></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
/**********fin index.php*****************/
/***************************/
/***************************/
Luego el archivo q devuelve el calendario
/*********mes_mini.php******************/
/***************************/
<?
function calcula_numero_dia_semana($dia,$mes,$ano){
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
if ($numerodiasemana == 0)
$numerodiasemana = 6;
else
$numerodiasemana--;
return $numerodiasemana;
}
function ultimoDia($mes,$ano){
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano)){
$ultimo_dia++;
}
return $ultimo_dia;
}

$dia_actual = 1;
$mes = $_POST['mes'];
$ano = $_POST['anio'];
//calculo el numero del dia de la semana del primer dia
$numero_dia = calcula_numero_dia_semana(1,$mes,$ano);

//calculo el último dia del mes
$ultimo_dia = ultimoDia($mes,$ano);
?>
<table width="245" border="1" class="mini_calendario">
<tr class="destaca_semana_cal">
<td>Lun</td>
<td>Mar</td>
<td>Mi&eacute;</td>
<td>Jue</td>
<td>Vie</td>
<td>S&aacute;b</td>
<td>Dom</td>
</tr>

<tr>
<?
for ($i=0;$i<7;$i++){
if ($i < $numero_dia){
//si el dia de la semana i es menor que el numero del primer dia de la semana
//no pongo nada en la celda
?><td></td><?
} else {
//pongo el número de día del mes en la celda
?><td align='center' class='dia_mes_actual' ><?=$dia_actual?></td>
<? $dia_actual++;
}
}
?></tr><?
//recorro todos los demás días hasta el final del mes
$numero_dia = 0;
while ($dia_actual <= $ultimo_dia){
//si estamos a principio de la semana escribo el <TR>
if ($numero_dia == 0){
?><tr><? }
?><td align='center' class='dia_mes_actual'><?=$dia_actual?></td><?
$dia_actual++;
$numero_dia++;
//si es el ultimo de la semana, pongo al principio de la semana y escribo el </tr>
if ($numero_dia == 7){
$numero_dia = 0;
?></tr><?
}
}

//compruebo que celdas me faltan por escribir vacías de la última semana del mes
for ($i=$numero_dia;$i<7;$i++){
?><td></td><?
}?>

</tr>
</table>
/********fin mes_mini.php***************/

Saludos!