[英]Using fullcalendar.io with Slim and AJAX
使用苗条的框架,我创建了一条路由,该路由从数据库中选择一条记录并将其编码为json并将其呈现为视图。
<?php
$app->get('/calendar/json', function() use ($app) {
$events = $app->Calendar->all();
$events = json_encode($events);
$app->render('calendar/json.json', array(
"events" => $events
));
})->name('calendar.json');
?>
显示结果
[{"id":"1","title":"Test Event","start":"2015-07-01"},{"id":"2","title":"Test Event 2","start":"2015-07-09"}]
使用jQuery完整日历库 ,我想使用ajax将这些数据提取到日历中。
在使用外部Json文件离开他们的站点的示例之后,数据显示在日历上。
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
eventLimit: true,
events: {
url: "data.json",
}
});
如果我复制了此文件但更改了URL参数以访问我的视图,则不会显示数据,但是会以相同的方式对其进行格式化。
var url = "{{ urlFor('calendar.json') }}";
url: url,
这就是我在jQuery中替换的用于访问视图的方法,这是访问视图的正确方法,还是因为我不在视图页面上而不直接显示视图?
第一:
您的Json不能是有效的Json,因为您没有设置Content-Type,所以我认为它将是text/html
(或其他内容)而不是application/json
。
因此进行设置,然后将Json直接作为Response-body返回:
$app->response()->header('Content-Type', 'application/json');
$app->response()->setBody($events);
另外,您不需要空视图。
第二:
在文档中有一个基本示例,其中没有一些自定义参数,可以“说”您可以将URL直接作为events
传递。
$('#calendar').fullCalendar({
events: '/myfeed.php'
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.