0
    $(document).ready(function () {

    output = "";

    $.ajax({

        url: 'getevents.php',

        data: { ufirstname: 'ufirstname' },

        type: 'post',

        success: function (output) {

            alert(output);

            var date = new Date();
            var d = date.getDate();
            var m = date.getMonth();
            var y = date.getFullYear();

            $('#calendar').fullCalendar({
            header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
            },
            editable: true,
            events: output
            });
        }
    });





});

我有这样的代码,如果我从警报框中逐字复制文本并替换

events: output

events: [{ id: 1, title: 'Birthday', start: new Date(1355011200*1000), end: new Date(1355011200*1000), allDay: true, url: 'http://www.yahoo.com/'},{ id: 2, title: 'Birthday Hangover', start: new Date(1355097600*1000), end: new Date(1355097600*1000), allDay: false, url: 'http://www.yahoo.com'},{ id: 3, title: 'Sepotomus Maximus Christmas', start: new Date(1356393600*1000), end: new Date(1356393600*1000), allDay: false, url: 'http://www.yahoo.com/'},]

一切正常。我能做些什么来解决这个问题?我虽然使用events: output会将文本放置在该位置,但它似乎不起作用。

提前感谢大家的任何评论或回答!

4

3 回答 3

3

由于您没有给我们太多信息,我将在黑暗中拍摄并说浏览器正在将 json 解释为文本。所以在 ajax 调用中添加一个dataType属性,以便 jQuery 可以将返回解析为 json。

$.ajax({

    url: 'getevents.php',
    data: { ufirstname: 'ufirstname' },
    type: 'post',
    dataType: 'json' 
    ......
于 2012-12-12T22:47:00.320 回答
1

如果您在警报框中获取该字符串。您需要使用JSON.parse()将字符串解析为 javascript 对象

改变

events: output

events: JSON.parse(output)

根据文档

“事件源”是为 FullCalendar 提供有关事件的数据的任何东西。它可以是一个简单的数组、您定义的事件生成函数、json 提要的 URL 或 Google 日历提要。

从 1.5 版开始,事件对象可以有与之关联的“选项”。但是,在您开始指定选项之前,您必须编写一个扩展形式的事件对象。它必须是具有属性的传统 JavaScript 对象。

此外,您的 json 字符串末尾还有一个额外的逗号

于 2012-12-12T22:47:11.820 回答
-1
    $year = date('Y');
$month = date('m');

echo json_encode(array(

    array(
        'id' => 111,
        'title' => "Event1",
        'start' => "$year-$month-10",
        'url' => "http://yahoo.com/"
    ),

    array(
        'id' => 222,
        'title' => "Event2",
        'start' => "$year-$month-20",
        'end' => "$year-$month-22",
        'url' => "http://yahoo.com/"
    )

));

该程序实际上想要这种非常特殊的 json_encode 格式,否则它不起作用。我只是通过阅读所有这些回复才知道这一点。

于 2012-12-12T23:09:46.577 回答