$(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
将文本放在该位置但似乎没有用。
请提前感谢您的任何意见或解答!
答案 0 :(得分:3)
由于你没有给我们提供太多信息,我将在黑暗中拍摄,并说浏览器将json解释为文本。因此,在ajax调用中添加dataType
属性,以便jQuery可以将返回值解析为json。
$.ajax({
url: 'getevents.php',
data: { ufirstname: 'ufirstname' },
type: 'post',
dataType: 'json'
......
答案 1 :(得分:1)
如果您在警告框中获取该字符串..您需要使用JSON.parse()将字符串解析为javascript对象
变化
events: output
到
events: JSON.parse(output)
“事件源”是为FullCalendar提供有关事件的数据的任何内容。它可以是一个简单的数组,您定义的事件生成函数,json提要的URL或Google Calendar提要。
从版本1.5开始,事件对象可以具有与之关联的“选项”。但是,在开始指定选项之前,必须以扩展形式编写事件对象。它必须是具有属性的传统JavaScript对象。
你的json字符串最后还有一个额外的逗号
答案 2 :(得分:-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格式,或者它不起作用。我只是通过阅读所有这些回复来解决这个问题。