动态地在fullcalendar中添加更多文本

时间:2013-01-18 14:25:04

标签: php jquery json fullcalendar

我需要在fullcalander中显示更多文字。但问题是我通过ajax调用从mySQL数据库获取数据作为json数据。所以我不知道即将到来的确切数据长度。所以我需要在循环中动态显示fullcalendar中的每日事件。我试过以下代码,但我没有得到输出。谁能帮我。提前谢谢

var testJson = ['value1', 'value2'];
$('#full_calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: [
        for(var i=0;i<2;i++){
            {
                title: ''+testJson [i],
                start: new Date(y, m, 3)
            }
    } ]
});

2 个答案:

答案 0 :(得分:2)

首先是2件事: 当你想知道被回收数据的确切长度时......为什么不在JSON对象中发送它们呢?

e.g。

var test = {"data":[1,2,3,4,5],"size":5}

获得lentgh的第二种方法是长度字段。每个javascript对象都有一个length字段。在上面的例子中,test.data.length将返回5(如test.size所做)。

我很确定你不能在数组声明中运行迭代,所以只需构建数组:

var events = [];
$(test).each(function(i, obj) {
    events[] = {title: test.data[i], start: new Date(y, m, 3)}
}

没有jquery它会喜欢这个:

var size = test.data.length;
var events = [];
for(var i =0; i < size; i++) {
    events[] = {title: test.data[i], start: new Date(y, m, 3)}
}

然后将其传递给您的函数调用

$('#full_calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: events
});

答案 1 :(得分:0)

如果您使用ajax调用来获取数据,那么您必须为ajax请求“'编写'events:”addres并为ajax请求添加一个文件。例如。在sitetr的参数事件中添加文件'json-events.php':'json-events.php'。在json-events.php中,您对数据库进行查询,并在数组中获取事件数据,其中一个事件 - 一个数据数组(数组中的数组)。每个活动必须有id,title,start,如:

array( array(
'id' => event id,
'title' => event title,
'start' => YYYY-mm-dd,
'end' => YYYY-mm-dd
))

之后转换为json格式(json_encode())和echo