SQLite-Request之后没有回调

时间:2011-05-05 15:17:02

标签: fullcalendar

非常棒的插件。 但我试图通过SQL-Rquest加载一些事件。 请求成功,我可以将Array放在另一个Container中或提醒它们,但Calendar不会加载事件。这是我的剧本

        $('#calendar').fullCalendar(
            {
             header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,agendaWeek,agendaDay'
                    },
             editable: true,        
             events: function(start, end, callback)
                        {
                        var rs = db.execute("select * from xCal");
                        var i = 0;
                        var events = '[';
                        while(rs.isValidRow()) 
                            {                       
                            if(i == 0){var events=events}else{events = events+','}
                            events=events+
                                        "{id:'"+rs.fieldByName('id')+"',"+
                                        "title:'"+rs.fieldByName('title')+"',"+
                                        "allDay:'"+rs.fieldByName('allDay')+"',"+
                                        "start:'"+rs.fieldByName('start')+"',"+
                                        "end:'"+rs.fieldByName('end')+"',"+
                                        "url:'"+rs.fieldByName('url')+"',"+
                                        "description:'"+rs.fieldByName('description')+"'}";
                            i++;
                            rs.next(); 
                            }
                        events = events+']';
                        callback( events );

                        }

            }); 

Udate引起评论.....

感谢您的重播,但这不是原因。我更改了代码(删除了引号和url完成),但它没有运行:(。

如果我尝试将SQL请求的返回放在event-option中,那么它的runnig就完美了。看来,我对callback();。

有问题

我已经提醒了callback-var。

function(events){
            callback(events);
            popLoading();
            }

调用回调本身?

更新原因答案....

见上文。相信我,字符串是正确的。 BTW我正在使用Unix时间戳;)

1 个答案:

答案 0 :(得分:0)

所以如果你使用

 events: function(start, end, callback) { }

使你的事件你必须创建一个jscript数组..而不是一个json类型的字符串。

这是一个有效的基本简单例子。

events:function(start,end,callback)
        {
            var event = [];
            event.push({
                title: 'Garten',
                start: '2011-05-10T00:00:00',
                allday: true
            });

            callback(event);
        }

在它上面就可以了,这个例子显示了

http://jsfiddle.net/ppumkin/6wE8v/

你只需要插入你的数据库内容。为评论中的混淆道歉

以下代码:

id: rs.fieldByName('id'),
title: rs.fieldByName('title'),
start: rs.fieldByName('start'),
etc..