完整日历.js默认视图:'agendaDay'全天部分中显示事件



使用fullCalendar.js和defaultView作为agendaDay,并从mysql获取JSON形式的事件。错误是它在"全天"部分显示事件。

我试过这个:

eventRender: function(event, element, view) {
if (event.allDay == 1) {
event.allDay = true;
} else {
event.allDay = false;
}

我也试过:

eventRender: function(event, element, view) {
event.allDay = false;
},

还有这个:

eventAfterAllRender: function(event, element, view) {
event.allDay = false;
},

但我是股票,仍然没有工作。

这是一个没有JSON的WORKING fiddle:events:

http://jsfiddle.net/sebababi/g5gtG/1/

要进行测试,您需要在jsFiddle for中更改事件:events:"events.php",

这是events.php文件

<?php
// List of events
$json = array();
// Query that retrieves events
$requete = "SELECT * FROM evenement ORDER BY id";
// connection to the database
try {
$bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'root', 'root');
} catch(Exception $e) {
exit('Unable to connect to database.');
}
// Execute the query
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
// sending the encoded result to success page
echo json_encode($resultat->fetchAll(PDO::FETCH_ASSOC));
?>

这是mysql表

CREATE TABLE `evenement` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) COLLATE utf8_bin NOT NULL,
`start` datetime NOT NULL,
`end` datetime DEFAULT NULL,
`url` varchar(255) COLLATE utf8_bin NOT NULL,
`allDay` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=34 ;
INSERT INTO `evenement` (`id`, `title`, `start`, `end`, `url`, `allDay`) VALUES
(24, 'testing defaultView with agendaDay and JSON event', '2014-01-07 08:30:00', '2014-01-07 09:30:00', '', 1);

如果能帮我走上正轨,我们将不胜感激。

好的,我在JsFiddle中添加了一些代码,以显示上一个按钮,下一个按钮:

HTML

<input type="button" value="prev" id="prevbutton" />
<input type="button" value="next" id="nextbutton"/>
<div id='calendar'></div>

JS

var calendar = $('#calendar').fullCalendar({
defaultView: 'agendaDay',
header: {
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
year: 2014,
month: 0,
day:7,
buttonText: {
prev: '&lt;',
next: '&gt;'
},
events: [
{
title: 'testing defaultView with agendaDay and JSON event',
start: '2014-01-07 11:00',
allDay: false
}
]
});
$('#prevbutton').click(function() {
calendar.fullCalendar('prev');
});
$('#nextbutton').click(function() {
calendar.fullCalendar('next');
});

现在,对于JSON,您必须在PHP中进行管理,以获得类似的JSON字符串

[{"id":"24","title":"testing with defaultView: agendaDay, not showing in Day","start":"2014-01-09 08:30:00","end":"2014-01-09 09:30:00","url":"","allDay":false}]

使用

var_dump(json_decode($json));

查看您的字符串是否正确,并且您必须在PHP中而不是在客户端从DATABASE转换allDay的0和1值。

编辑

下面的对话。。。

Sebastian,你误解了我的观点,那就是让你在PHP中获得PDO::FETCH_ASSOC的内容,并将其转换为一个普通的PHP关联数组,在构建普通PHP数组时,正是在这种转换方式下,你会更改allDay的值。

基于该链接,您可以访问返回的行,该行实际上是一个关联数组,就像我们在PHP中所知道的那样,并将allDay值从0更改为false。

只有这样,您才能使用json_encode()并将其发送回fullcalendar。

最新更新