gpt4 book ai didi

javascript - fullCalendar.js 默认 View : 'agendaDay' shows events in all-Day section

转载 作者:行者123 更新时间:2023-11-30 00:51:06 24 4
gpt4 key购买 nike

使用 fullCalendar.js 和 defaultView 作为议程日,并从 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 的有效 fiddle :事件:

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

要测试,您需要将 jsFiddle 中的 event: 更改为: 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 中(而不是在客户端)从数据库中转换 allDay 的 0 和 1 值。

编辑

下面的对话...

你误解了我的观点,Sebastian,那是为了让你在 PHP 中获取 PDO::FETCH_ASSOC 的内容,并将其转换为普通的 PHP 关联数组,在构建普通 PHP 数组时,你将在这种转换过程中进行更改allDay 的值。

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

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

关于javascript - fullCalendar.js 默认 View : 'agendaDay' shows events in all-Day section,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com