Javascript fullCalendar.js defaultView:';代理日';在全天部分显示事件
使用fullCalendar.js和defaultView作为agendaDay,并从mysql获取JSON形式的事件。错误在于它在“全天”部分显示事件 我试过这个:Javascript fullCalendar.js defaultView:';代理日';在全天部分显示事件,javascript,jquery,mysql,json,fullcalendar,Javascript,Jquery,Mysql,Json,Fullcalendar,使用fullCalendar.js和defaultView作为agendaDay,并从mysql获取JSON形式的事件。错误在于它在“全天”部分显示事件 我试过这个: eventRender: function(event, element, view) { if (event.allDay == 1) { event.allDay = true; } else { event.allDay = false; } 我还尝试: eventRender: f
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:events的工作小提琴:
要进行测试,您需要更改jsFiddle for:events:events.php中的event:
下面是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));
?>
如果您能帮助我走上正确的道路,我们将不胜感激。好的,我在您的JSFIDLE中添加了一些代码来显示按钮prev,next: HTML
<input type="button" value="prev" id="prevbutton" />
<input type="button" value="next" id="nextbutton"/>
<div id='calendar'></div>
现在,对于您的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}]
使用
若要查看字符串是否正确,必须从PHP中的数据库(而不是客户端)转换allDay的0和1值
编辑
在下面的对话之后
你误解了我的观点,Sebastian,那是为了让你在PHP中获取PDO::FETCH_ASSOC的内容,并将其转换为普通的PHP关联数组,而在构建普通PHP数组时,你将以这种转换方式更改allDay的值
基于该链接,您可以访问返回的行,该行实际上是一个关联数组,就像我们都从PHP中知道的那样,并将allDay值从0更改为false(例如)
只有这样,您才能使用json_encode()并将其发送回fullcalendar。您可以在浏览器控制台中显示返回的json。我可以在JSFIDLE中看到呈现事件“不在全天时段”,您可以编辑您的问题并在浏览器控制台中发布返回的json吗。@Henrique C.嗨,Henrique,这里是JSON:这里是正在运行的代码:。因此,在第一次加载中,您可以在全天区域中看到事件。如果你点击“月”,然后点击“日”,活动就在正确的地方。谢谢,对不起,塞巴斯蒂安,你能在日历中加入导航功能吗?只是想看看在day view中事件的呈现是否正常。顺便问一下,为什么不在事件的JSON“allDay”中设置:true或false?谢谢Henrique,我在events.php中更改了最后一行:echo JSON_encode($resultat->fetchAll(PDO::FETCH_ASSOC));对于您的var_dump(json_解码($resultat->fetchAll(PDO::FETCH_ASSOC));但给了我一个警告:json_decode()希望参数1是字符串,数组在第21行的/var/www/clients/client2/web24/web/fullcalendar-1.6.4/events.php中给出,这将有所帮助;)然后尝试通过创建一个PHP数组来使用它,然后将这个PHP数组用于您的var_转储(json_decode($newPHPArray));感谢Henrique,我使用了print_r(json_encode($resultat->fetchAll(PDO::FETCH_ASSOC));(正如建议的,并尝试了其他建议)但JSON仍然是allDay:0,而不是allDay:false。但我认为问题并不存在。我还试图“破解”结果,只需通过:allDay=false;我忘了提到,我认为问题不在于JSON,因为如果我选择查看月份而不是日期,它就可以正常工作。问题发生在我想先看一天的时候,这正是我所需要的;o) 选中edit Sebastian,如果需要我构建代码,我会;)
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');
});
[{"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));