FullCalendar不能在带有jQuery 1.4.1的CakePHP 1.2.5中工作

时间:2010-02-15 15:30:30

标签: jquery ajax json fullcalendar cakephp-1.2

我正在尝试通过URL获取事件数据,该URL将返回JSON数据。 相同的代码使用jQuery 1.3.2但不适用于jQuery 1.4.1

我在FireBug控制台中收到此错误


a未定义

for(var i = 0; i

fullcalendar.js(第369行)


我正在获取JSON数据,因为我可以在FireBug的响应头中检查它 jQuery 1.4.1强制执行严格的JSON解析 我不确定这是不是问题。

我在apache webroot中保留了FullCalendar示例。 如果我使用“/fullcalendar/examples/json-events.php”代替我的CakePHP AJAX url“/ myCake / calendars / get_events”,那么它适用于jQuery 1.4.1。 但是如果我在我的CakePHP get_events.ctp文件中的“/fullcalendar/examples/json-events.php”中包含相同的代码,该文件生成相同的JSON,那么它会给jQuery 1.4.1带来同样的错误

如果有人遇到同样的问题并找到了解决方案或解决方法,那么如果你分享你的经验,将会非常有帮助。

2 个答案:

答案 0 :(得分:0)

听起来肯定是jquery 1.4.1强制执行严格的json规则(http://yehudakatz.com/2010/01/15/jquery-1-4-and-malformed-json/),这就是错误发生的原因。 fullcalendar.js中的那一行是解析feed的地方,所以很有意义。我会看看firebug中的json,看看每个字符串周围是否有双引号。如果没有,这肯定你的问题。

我不熟悉cakephp,但如果你想快速破解事件作为功能,我会做以下或类似的事情......

$('#calendar').fullCalendar({
    events: function(start, end, callback) {
        $.getJSON('yourfeed.php', { start:start, end:end }, function(data) {
             callback(eval("(" + data + ")"));
        });
    }
});

答案 1 :(得分:0)

我的问题是jquery 1.4.1+不接受JSON中的单引号,所以这是一个简单的修复,但我想你不是在你可以改变生成的JSON的位置?

Arshaws的例子工作得非常好(非常感谢arshaw获得了一个很棒的插件:))。或者您可以使用jquery-json plugin以安全的方式评估json响应。