这是我的第一篇文章,所以要温柔:)
我是 PHP、MySQL 和 JQUERY 的新手,但我有很多使用 AS3、Java 和 C++ 编程的经验,所以我对这些东西的工作原理有一些参考框架......
这是我正在尝试做的事情:
- 我正在为我的教堂创建一个网站,并为我们的调度程序使用 Fullcalendar 类
- 注意:谷歌日历不是一个选项
- 我需要能够设置重复事件,并根据每个事件是否已被取消为每个事件着色
这是我已经走了多远:
- 我有一个包含 8 个字段的 MySQL 数据库:p_id(仅供我使用)、id、title、start、end、allDay、url、cancel
- 我有一个包含以下代码的 PHP 文件:
.
//--------------------------------------------------------------------------
// Example php script for fetching data from mysql database
//--------------------------------------------------------------------------
$host = "fakehost";
$user = "fakeuser";
$pass = "fakepwd";
$databaseName = "fake_db";
$tableName = "tbl_calendar";
//--------------------------------------------------------------------------
// 1) Connect to mysql database
//--------------------------------------------------------------------------
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
//--------------------------------------------------------------------------
// 2) Query database for data
//--------------------------------------------------------------------------
$query = "SELECT id,title,start, DATE_FORMAT(start, '%Y-%m-%d %H:%i' ) AS startDate, end, url FROM $tableName ORDER BY startDate DESC";
$result = mysql_query($query) or die(mysql_error());
$array = array();
while($row = mysql_fetch_assoc($result)){
$array[] = $row;
}
//--------------------------------------------------------------------------
// 3) echo result as json
//--------------------------------------------------------------------------
echo json_encode($array);
?>
我的 HTML 文件中还有以下代码:
<script type='text/javascript'> $(document).ready(function() { var date = new Date(); var d = date.getDate(); var m = date.getMonth(); var y = date.getFullYear(); $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, editable: false, allDayDefault: false, url: true, timeFormat: 'h(:mm)t', // uppercase H for 24-hour clock agenda: 'h(:mm)t' , // 5:00 - 6:30 '': 'h(:mm)t', // for all other views events: "../data/get_calendar.php", eventDrop: function(event, delta) { alert(event.title + ' ha sido movido ' + delta + ' dias\n' + '(should probably update your database)'); }, loading: function(bool) { if (bool) $('#loading').show(); else $('#loading').hide(); }, eventClick: function(calEvent, jsEvent, view) { //alert('Event: ' + calEvent.title); //alert('Url: ' + calEvent.url); //alert('View: ' + view.name); window.open(calEvent.url, blank); return false; } }); });
就使用我在数据库中的事件并将它们放在它们所属的日历上而言,这一切都很好。
问题是我正在尝试为每个事件添加特定的 CSS 类。例如,我希望取消的事件是红色的(而不是删除它们)。
我浏览了很多材料。阅读了很多关于事件源的内容,但我就是不明白......我无法让它工作。理想情况下,我想在我的数据库中添加另一个字段,并让它自动应用类名或颜色。我可以通过硬代码应用颜色,但我只是不明白如何通过数据库来实现。
任何人都可以帮忙吗?请给我很多简单的步骤,因为显然,我没那么聪明:-S
编辑: 我尝试添加一个名为“className”的字段,并编写了相应的 CSS 规则。我认为这样做可以,但是当我检查元素时,我在任何地方都看不到 className ...我认为它不会从 MySQL 数据库中自动应用它。我还在下面尝试了 Brotherli 的建议,但也无法使其正常工作(可能是用户错误)。也许我需要更改一些完整的日历 jquery 代码?