使用AJAX在PHP日历中更改月份

时间:2011-08-06 22:50:48

标签: php jquery 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”属性传递了该信息。我认为问题在于,当日历脚本运行时,rel属性不会改变,因此不会生成一组新的参数。

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

如果您的#db-cal-next#db-cal-prev位于#db-calendar-wrap之内,那么当您通过AJAX将HTML加载到包装器时,带有ID的新元素“db-cal-next”和“db” -cal-prev“创建。所以,新的元素不在你的jQuery集中。您需要使用jQuery .live()事件绑定函数:http://api.jquery.com/live/ 但是,您可能需要jQuery UI Datepicker的功能吗?

答案 1 :(得分:0)

如果您想在客户端刷新内容,那么您确实需要一个客户端解决方案。

有很多可用的Javascript日历:工具包和独立模块。例如:

CalendarView

jsDatePick

Dojo Widgets