2011-08-06 49 views
0

我有一個PHP構建的日曆,顯示每個月的日期。現在我想要做的是能夠在幾個月之間導航而不必刷新頁面。使用AJAX更改PHP日曆中的月份

通常,腳本會在URL中傳遞參數,所以我試圖通過AJAX加載請求傳遞這些信息。它向前運行一個月,向後運行一個月。但是之後,鏈接停止工作,「#」返回到URL中。

這裏是我的代碼:

$(document).ready(function(){ 

//Calendar "next" 
$("#db-cal-next").click(function(){  
    var get_params = $(this).attr("rel"); 
    $("#db-calendar-wrap").load("../template/db-calendar.php", get_params); 
    return false; 
}); 

//Calendar "previous" 
$("#db-cal-prev").click(function(){ 
    var get_params = $(this).attr("rel"); 
    $("#db-calendar-wrap").load("../template/db-calendar.php", get_params); 
    return false; 
}); 
}); 

我對創造下一個和前幾個月的請求所需的參數PHP腳本通,把它傳遞信息,通過「相對」屬性。我認爲問題在於,日曆腳本運行時,rel屬性不會更改,因此不會生成一組新參數。

任何幫助將不勝感激,謝謝!

回答

0

如果您#db-cal-next#db-cal-prev#db-calendar-wrap內,比,當你通過AJAX加載HTML爲包裝,與IDS新元素 「DB-CAL-NEXT」 和 「DB-CAL-上一頁」 創建。所以,新元素不在你的jQuery集合中。你需要使用jQuery .live()事件綁定功能:http://api.jquery.com/live/ 但是,可能是jQuery UI Datepicker的功能是你需要的嗎?

+0

會使用'活()'大家都已經退出?他們爲了某個原因做了委託()。 –

+0

@Levi - 是什麼原因? –

+0

我對此並不瞭解。謝謝你提供的信息,'delegate()'也是做這個的好方法 – Timur

0

如果您希望在客戶端刷新一些內容,那麼您確實需要客戶端解決方案。

有很多Javascript日曆可用:無論是在工具包,還有獨立模塊。例如:

CalendarView

jsDatePick

Dojo Widgets