将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的工作小提琴:事件:
http://jsfiddle.net/sebababi/g5gtG/1/
要进行测试,您需要更改事件:在jsFiddle中: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);
非常感谢帮助我走上正轨的任何帮助。
答案 0 :(得分:0)
好的,我向你的JsFiddle添加了一些代码,以显示按钮prev,next:
<强> 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: '<',
next: '>'
},
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。