Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/04/2010, 09:21
jonnhy_23
 
Fecha de Ingreso: abril-2010
Ubicación: MADRID
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Problemas con calendario PHP & JAVASCRIPT

Mirar tengo este calendario que usa javascript y php, el tema esq el calendario tal cual está se abre en la fecha actual, seleccionas un mes y un año y cambia. Luego pinchado en un dia te pone en la barra de direcciones el dia el mes y el año para poderlos reclamar con metodo GET, el tema esq el calendario me gusta y necesito un calendario que al pinchar sobre un dia me pase la fecha a mi formulario de un proyecto que estoy haciendo y ademas al cambiar en los desplegables el mes y el año el calendario cambie a ese correspondiente mes y año... Mi idea es modificar este para que funcione igual pero sin usar metodo GET, sino POST con un boton submit... ya he probado y pensado pero estoy en practicas y no soy muy experto en php y los calendarios que hay por ahi son muy complejos para mi... a ver si me echais una mano GRACIAS!


<?
$anoInicial = '2010';//Año inicial del calendario
$anoFinal = '2011';//Último año del calendario
$funcionTratarFecha = 'document.location = "?dia="+dia+"&mes="+mes+"&ano="+ano;';
?>
<html>
<head>
<script>
function tratarFecha(dia,mes,ano){
<?=$funcionTratarFecha?>
}
</script>


<?//La etiqueta estilo cambia el tipo de fuente, su tamaño, color y elimina
//cualquier decoración o estilo distintos a los especificados?>

<style>
.m1 {
font-family:MS Sans Serif;
font-size:12pt
}
a {
text-decoration:none;
color:#000000;
}
</style>

<?//Crea la tabla en la que va el calendario y la otorga un ancho, un borde,
//un color de fondo y determina el espacio entre celdas?>
</head>
<body>
<form>
<table border="1" cellpadding="5" cellspacing="0" bgcolor="#D4D0C8">
<tr>
<td width="100%">

<?
$fecha = getdate(time());//Guarda la fecha del sistema actual en una variable $fecha

if(isset($_GET["dia"]))$dia = $_GET["dia"];
else $dia = $fecha['mday'];/*Este if hace que si la variable $dia no está fijada,
obtenga el dia de la fecha que se había guardado antes y lo guarde en ella*/

if(isset($_GET["mes"]))$mes = $_GET["mes"];
else $mes = $fecha['mon'];/*Lo mismo para el mes*/

if(isset($_GET["ano"]))$ano = $_GET["ano"];
else $ano = $fecha['year'];/*Lo mismo para el año*/


$fecha = mktime(0,0,0,$mes,$dia,$ano);/*Guarda la fecha con h0 m0 s0 y un mes, dia y año*/
$fechaInicioMes = mktime(0,0,0,$mes,1,$ano);/*Lo mismo solo que fijandola en el primer dia
del mes del año que sea*/
$fechaInicioMes = date("w",$fechaInicioMes);/*Ahora guarda en esa variable el
día de la semana, desde el 0 (domingo) al 6 (sabado)*/
?>

<select size="1" name="mes" style='width:150;font-size:15;font-weight:bolder' onchange="document.location = '?dia=<?=$dia?>&mes=' + document.forms[0].mes.value + '&ano=<?=$ano?>';">

<?
/*Se crea un array con los meses del año*/
$meses = Array ('Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre ','Diciembre');
/*Este bucle for entero sirve para crear el desplegable que nos permite elegir el mes
que queremos visualizar del calendario*/
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" style='width:150;font-size:15;font-weight:bolder' onchange="document.location = '?dia=<?=$dia?>&mes=<?=$mes?>&ano=' + document.forms[0].ano.value;">

<?
/*Este otro bucle for hace lo mismo que con el desplegable de los meses solo que éste
está creado desde el año inicial fijado hasta el año final marcado*/
for ($i = $anoInicial; $i <= $anoFinal; $i++){
echo ' <option ';
if($ano == $i)echo 'selected ';
echo 'value="'.$i.'">'.$i."\n";
}
?>
</select><br>
<font size="1">&nbsp;</font><table border="0" cellpadding="2" cellspacing="0" width="100%" class="m1" bgcolor="#c0c0c0" height="100%">
<?
$diasSem = Array ('L','M','M','J','V','S','D');/*Se crea otro array con los dias de la semana*/
$ultimoDia = date('t',$fecha);/*Te saca el numero de dias que tiene el mes, para saber cual
es el ultimo dia del mes*/
$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"';/*Color de fondo del calendario*/
if($dia-1 == $numMes)echo ' bgcolor="#0A246A"';/*Te pinta el dia al que estamos*/
echo " align=\"center\">\n";
echo ' ';
if($fila == 0)echo '<font color="#D4D0C8">'.$diasSem[$coln];/*Color de la letra
de los dias de la semana*/
else if(($numMes && $numMes < $ultimoDia) || (!$numMes && $posicion[$coln] == $fechaInicioMes)){
echo '<a href="#" onclick="tratarFecha('.(++$numMes).','.$mes.','.$a no.')">';
if($dia == $numMes)echo '<font color="#FFFFFF">';/*Color de la letra del dia al que estamos*/
echo ($numMes).'</a>';
}
echo "</td>\n";
}
echo "</tr>\n";
}
?>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>