show event in fullcalendar with json.parse (SyntaxError: missing : after property id)
show event in fullcalendar with json.parse (SyntaxError: missing : after property id)
加载屏幕后在日历中显示事件。
events: {
JSON.parse(get_data());
},
CONTROLLER 一切正常 JSON.PARSE
没问题
$calendar = array();
foreach($data_calendar as $key => $val) {
$calendar[] = array(
'id' => intval($val - > id),
'title' => $val - > title,
'description' => trim($val - > description),
'start' => date_format(date_create($val - > start_date), "Y-m-d H:i:s"),
'end' => date_format(date_create($val - > end_date), "Y-m-d H:i:s"),
'color' => $val - > color,
);
}
$data = array();
$data['get_data'] = json_encode($calendar);
$data['telaativa'] = 'agenda'; //retorna agenda penso que manté menu barra esquerda colapsada em agenda
$data['tela'] = ('/calendario/view_agenda--');
view_agenda--
$this - > load - > view('view_home2', $data);
结果中带有 1 或“1”的 RESULT id 是因为我为 id 声明了 intval,所以我可以在输出中获得两种格式。
'get_data' => string '[{"id":1,
'get_data' => string '[{"id":"1",
array (size=3)
'get_data' => string '[{"id":1,"title":"teste evento1","description":"descri\u00e7\u00e3o do evento bla bla bla","start":"2019-05-06 00:00:00","end":"2019-05-07 00:00:00","color":"#0071c5"},{"id":6,"title":"cert soldador 1-1","description":"descrtivo do certificado ser 111 bw t1-25mm s275","start":"2019-05-29 23:00:00","end":"2019-05-30 00:00:00","color":"#40E0D0"},{"id":7,"title":"cert soldador 1-2 soldador nr1","description":"certificado de soldador nr 1 doc 1-2","start":"2019-05-30 00:00:00","end":"2019-05-31 00:00:00","color'... (length=5865)
'telaativa' => string 'agenda' (length=6)
'tela' => string '/calendario/view_agenda--' (length=25)
查看
$(document).ready(function() {
$('.date-picker').datepicker();
$('#calendarIO').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultDate: moment().format('YYYY-MM-DD'),
editable: true,
eventLimit: true, // allow "more" link when too many events
selectable: true,
selectHelper: true,
select: function(start, end) {
$('#create_modal input[name=start_date]').val(moment(start).format('YYYY-MM-DD'));
$('#create_modal input[name=end_date]').val(moment(end).format('YYYY-MM-DD'));
$('#create_modal').modal('show');
save();
$('#calendarIO').fullCalendar('unselect');
},
eventDrop: function(event, delta, revertFunc) { // si changement de position
editDropResize(event);
},
eventResize: function(event, dayDelta, minuteDelta, revertFunc) { // si changement de longueur
editDropResize(event);
},
eventClick: function(event, element) {
deteil(event);
editData(event);
deleteData(event);
},
events: {
JSON.parse(get_data());
},
});
});
ERROR
SyntaxError: missing : after property id
如果我删除 JSON.parse(get_data());
,我的日历将可见,但没有活动。如果我添加一个事件,它将一直显示到我刷新页面为止。所有功能工作都需要将数据从数据库加载到日历中。
您似乎对如何在视图中使用 PHP 视图数据感到困惑。
我想也许你应该读一读:https://www.codeigniter.com/user_guide/general/views.html#adding-dynamic-data-to-the-view。它向您展示了如何将您提供给视图的 PHP 数据注入到您的页面中。
你现在正在做的是编写纯 JavaScript,它试图调用一个不存在的函数。您需要做的是编写一个 PHP 片段,将 server-side 数据注入到 PHP 正在创建的 HTML 和 JavaScript 代码中。
我不是 CodeIgniter 专家,但根据该文档页面,我认为您应该写的是:
events: <?php echo $get_data; ?>,
如果你像这样注入它而不带引号,那么它将被自动视为 JavaScript 数组文字,因此不需要 JSON.parse()。这是有效的,因为 JSON 语法是有效的 JavaScript 对象语法的子集。如果您使用浏览器中的“查看源代码”功能查看页面的最终输出,您就会明白我的意思。
(请注意,您还需要从 events:
声明中删除 {
和 }
,因为 fullCalendar 需要一个数组,而不是一个对象。
加载屏幕后在日历中显示事件。
events: {
JSON.parse(get_data());
},
CONTROLLER 一切正常 JSON.PARSE
没问题$calendar = array();
foreach($data_calendar as $key => $val) {
$calendar[] = array(
'id' => intval($val - > id),
'title' => $val - > title,
'description' => trim($val - > description),
'start' => date_format(date_create($val - > start_date), "Y-m-d H:i:s"),
'end' => date_format(date_create($val - > end_date), "Y-m-d H:i:s"),
'color' => $val - > color,
);
}
$data = array();
$data['get_data'] = json_encode($calendar);
$data['telaativa'] = 'agenda'; //retorna agenda penso que manté menu barra esquerda colapsada em agenda
$data['tela'] = ('/calendario/view_agenda--');
view_agenda--
$this - > load - > view('view_home2', $data);
结果中带有 1 或“1”的 RESULT id 是因为我为 id 声明了 intval,所以我可以在输出中获得两种格式。
'get_data' => string '[{"id":1,
'get_data' => string '[{"id":"1",
array (size=3)
'get_data' => string '[{"id":1,"title":"teste evento1","description":"descri\u00e7\u00e3o do evento bla bla bla","start":"2019-05-06 00:00:00","end":"2019-05-07 00:00:00","color":"#0071c5"},{"id":6,"title":"cert soldador 1-1","description":"descrtivo do certificado ser 111 bw t1-25mm s275","start":"2019-05-29 23:00:00","end":"2019-05-30 00:00:00","color":"#40E0D0"},{"id":7,"title":"cert soldador 1-2 soldador nr1","description":"certificado de soldador nr 1 doc 1-2","start":"2019-05-30 00:00:00","end":"2019-05-31 00:00:00","color'... (length=5865)
'telaativa' => string 'agenda' (length=6)
'tela' => string '/calendario/view_agenda--' (length=25)
查看
$(document).ready(function() {
$('.date-picker').datepicker();
$('#calendarIO').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
defaultDate: moment().format('YYYY-MM-DD'),
editable: true,
eventLimit: true, // allow "more" link when too many events
selectable: true,
selectHelper: true,
select: function(start, end) {
$('#create_modal input[name=start_date]').val(moment(start).format('YYYY-MM-DD'));
$('#create_modal input[name=end_date]').val(moment(end).format('YYYY-MM-DD'));
$('#create_modal').modal('show');
save();
$('#calendarIO').fullCalendar('unselect');
},
eventDrop: function(event, delta, revertFunc) { // si changement de position
editDropResize(event);
},
eventResize: function(event, dayDelta, minuteDelta, revertFunc) { // si changement de longueur
editDropResize(event);
},
eventClick: function(event, element) {
deteil(event);
editData(event);
deleteData(event);
},
events: {
JSON.parse(get_data());
},
});
});
ERROR SyntaxError: missing : after property id
如果我删除 JSON.parse(get_data());
,我的日历将可见,但没有活动。如果我添加一个事件,它将一直显示到我刷新页面为止。所有功能工作都需要将数据从数据库加载到日历中。
您似乎对如何在视图中使用 PHP 视图数据感到困惑。
我想也许你应该读一读:https://www.codeigniter.com/user_guide/general/views.html#adding-dynamic-data-to-the-view。它向您展示了如何将您提供给视图的 PHP 数据注入到您的页面中。
你现在正在做的是编写纯 JavaScript,它试图调用一个不存在的函数。您需要做的是编写一个 PHP 片段,将 server-side 数据注入到 PHP 正在创建的 HTML 和 JavaScript 代码中。
我不是 CodeIgniter 专家,但根据该文档页面,我认为您应该写的是:
events: <?php echo $get_data; ?>,
如果你像这样注入它而不带引号,那么它将被自动视为 JavaScript 数组文字,因此不需要 JSON.parse()。这是有效的,因为 JSON 语法是有效的 JavaScript 对象语法的子集。如果您使用浏览器中的“查看源代码”功能查看页面的最终输出,您就会明白我的意思。
(请注意,您还需要从 events:
声明中删除 {
和 }
,因为 fullCalendar 需要一个数组,而不是一个对象。