allora, nel punto dove prima inserivi il calendario devi mettere l'elemento html (un div di solito) che farà da wrapper (cornice) al valore ottenuto con Ajax.
Ora metti di avere il tuo div: <div id="CalendarWrapper"></div>
con prototype.js puoi facilmente chiamare la pagina con una semplice istruzione:
new Ajax.Updater('CalendarWrapper', 'inc/calendario.php', {method: 'get', parameters : {aa : anno, mm: mese}, onComplete: function(){...}});
dove anno e mese saranno l'anno ed il mese da visualizzare.
Una cosa dovresti ancora fare con il calendario: devi mettere un id ai link che conducono al mese successivo ed a quello precendente e togliere gli href corrispondenti (lascia solo # nel href), metti che siano id="PrevMonth" e id="NextMonth"
per prima cosa creiamo una funzione per fare questo facilmente:
Codice PHP:
function updateCalendar(anno, mese)
{
new Ajax.Updater('CalendarWrapper', 'inc/calendario.php', {method: 'get', parameters : {aa : anno, mm: mese}, onComplete : function()
{
$('PrevMonth').observe('click', prevMonth);
$('NextMonth').observe('click', nextMonth);
}
});
}
Questa funzione prende in ingresso due interi che sono il mese e l'anno da passare come argomenti, effettua l'update e poi associa gli eventi corrispondenti ai pulsanti per mostrare il mese precendente e successivo (definirò dopo queste funzioni).
Ora, all'apertura della pagina, tu vorrai mostrare il calendario con il mese e anno corrente, o, in caso di passaggio dei valori aa e mm in GET, il mese per i dati indicati.
Allora fai:
Codice PHP:
var currentMonth, currentYear;
Event.observe(window, 'load', function(){
currentMonth = <?=$_GET['mm'] ? $_GET['mm'] : 'null'?>;
currentYear = <?=$_GET['aa'] ? $_GET['aa'] : 'null'?>;
if(!currentMonth || !currentYear)
{
var d = new Date();
currentMonth = !currentMonth ? d.getMonth() + 1 : currentMonth;
currentYear = !currentYear ? d.getFullYear() : currentYear;
}
updateCalendar(currentMonth, currentYear);
})
Questo caricherà il calendario all'apertura della pagina.
Ora non ci resta che creare due funzioni, quella per mostrare il mese successivo e quella per mostrare il mese precendente (quelle che nella funzione updateCalendar vengono associate ai link con gli id)
Codice PHP:
function prevMonth(){
currentMonth = currentMonth == 1 ? 12 : currentMonth - 1;
currentYear = currentMonth == 12 ? currentYear - 1 : currentYear;
updateCalendar(currentMonth, currentYear);
}
function nextMonth(){
currentMonth = currentMonth == 12 ? 1 : currentMonth + 1;
currentYear = currentMonth == 1 ? currentYear + 1 : currentYear;
updateCalendar(currentMonth, currentYear);
}
Questo dovrebbe essere sufficiente a fare quello di cui hai bisogno, se non funziona qualcosa dimmelo e ci do un'occhiata al link.