Buongiorno a tutti,
sto cercando di creare un calendario perpetuo per poi andare a gestire l'inserimento di un'evento. Ovviamente il calendario risulta essere funzionante con le frecce destra e sinistra ma stavo pensando di eliminare quella funzione per inserire un menù a tendina che partirebbe dal mese e anno odierno per poi esser cambiato.
Il codice scritto è questo:

<?php
$mesi = array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" );
?>
<select name="mese">
<?php for($i=0;$i<12;$i++){?>
<option value="<?php echo $i+1?>"><?php echo $mesi[$i]?></option>
<?php } ?>
</select>
<select name="anno">
<?php for($i=1910;$i<2501;$i++){?>
<option><?php echo $i?></option>
<?php } ?>
</select>


<?php
//calendario perpetuo, non serve altro che chiamare la funzione con calendario($mese,$anno)
function calendario($mese,$anno)
{
// Se e’ presente la variabile “x” prendo mese ed anno altrimenti prendo i dati di oggi (data del server!)
isset($_GET['x']) ? $x = $_GET['x'] : $x = "";
if ($x == "")
{
$mese_ = $mese;
$anno_ = $anno;
}
else
{
$mese_ = (int)strftime( "%m" ,(int)$_GET['x']);
$anno_ = (int)strftime( "%Y" ,(int)$_GET['x']);
}
// prendo i dati precedenti e successivi…
$prev = mktime(0, 0, 0, $mese_ -1, 1, $anno_);
$next = mktime(0, 0, 0, $mese_ +1, 1, $anno_);
// Rendo i tempi del server…umani.
$human_month = array("error", "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre" );
$settimana = array("Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom");
$colonne = 7;
$giorni = date("t",mktime(0, 0, 0, $mese_, 1, $anno_)); //giorni del mese in questione
$primo_lunedi= date("w",mktime(0, 0, 0, $mese_, 1, $anno_)); //Array_parte da 0
if($primo_lunedi==0)
$primo_lunedi = 7; //non siamo americani
// Creiamo la tabella ove visualizzare intestazione (<< Mese Anno >>)
print("<table width=\"210\" colspacing=\"0\" border=\"0\">"); //table
print("\n\t<tr height=\"20\">\n\t\t<td colspan=\"".$colonne."\" align=\"center\"><a href=\"?x=".$prev."\"><<</a> <span>".$human_month[(int)$mese_]." ".$anno_."</span> <a href=\"?x=".$next."\">>></a></td>\n\t</tr>"); //mese/anno
// Mostro i giorni della settimana…
foreach($settimana as $val)
print("\n\t\t<td height=\"20\">".$val."\t</td>");
print("</tr>");
// Stampiamo i giorni del mese…
for($i = 1; $i<$giorni+$primo_lunedi; $i++)
{
if($i%$colonne+1==0)
print("\n\t<tr>");
if($i<$primo_lunedi)
print("\n\t\t<td> </td>");
else
{
$giorno_= $i-($primo_lunedi-1);
$a = strtotime(date($anno_."-".$mese_."-".$giorno_));
$b = strtotime(date("Y-m-d"));
// Evidenziamo oggi…
if($a != $b)
print("\n\t\t<td><a href=\"?x=".$a."\">".$giorno_."</a></td>");
else
print("\n\t\t<td><a href=\"?x=".$a."\"><strong>".$giorno_."</strong></a></td>");
}
if($i%$colonne==0)
print("\n\t</tr>");
}
print("\n\t<tr height=\"30\"> \n\t</tr>");
print("\n</table>");
}
// Richiamiamo la funzione che genera il calendario…
calendario(date("m"),date("Y"));
?>
ma non so come collegare il menù a tendina con quello a frecce... Per quanto riguarda l'apertura di una pagina nuova penso che la funzione corretta sarebbe un "a href" inserito in un ciclo for. Dopo di che il salvataggio dell'evento sul giorno se non erro andrebbe gestito con mysql.
Qualora qualcuno mi potesse dare una delucidazione ne sarei molto grato, sono tanti anni che non mi trovo a riprogrammare in php ed ho perso un bel pò di smalto ;=)