将 fullcalendar.io 与 Slim 和 AJAX 一起使用
Using fullcalendar.io with Slim and AJAX
使用 slim 框架,我创建了一个从数据库中选择记录并将其编码为 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 full calendar library,我想使用 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
.
所以直接将 return Json 设置为 Response-body:
$app->response()->header('Content-Type', 'application/json');
$app->response()->setBody($events);
此外,您不需要空视图。
第二个:
在 docs 中有一个没有一些自定义参数的基本示例 "say" 您可以直接将 url 作为 events
.
传递
$('#calendar').fullCalendar({
events: '/myfeed.php'
});
使用 slim 框架,我创建了一个从数据库中选择记录并将其编码为 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 full calendar library,我想使用 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
.
所以直接将 return Json 设置为 Response-body:
$app->response()->header('Content-Type', 'application/json');
$app->response()->setBody($events);
此外,您不需要空视图。
第二个:
在 docs 中有一个没有一些自定义参数的基本示例 "say" 您可以直接将 url 作为 events
.
$('#calendar').fullCalendar({
events: '/myfeed.php'
});