我尝试使用 FullCalendar.js 制作可用性日历。如果我在 index.php 中从数据库调用事件,一切都会正常,但是当我尝试通过 json 获取事件时,我什么也得不到。日历显示但正常,但不显示事件。当我查看 smjestaj-rezervacija-kalendar.php 时,我得到:
[ { title: 'Rezervirano', start: '2015-01-30', allDay: true } , { title: 'Rezervirano', start: '2015-01-31', allDay: true } , { title: 'Rezervirano', start: '2015-02-01', allDay: true } ]
这样就可以了。有人知道为什么它没有显示在日历上,我做错了什么吗?
index.php
<script type="text/javascript">
$(document).ready(function(){
// Event calendar js
try{
$('#utopia-fullcalendar-2').fullCalendar({
header:{
left:'prev,next',
center:'title',
right:''
},
dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj','Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip','Srp','Kol','Ruj','Lis','Stu','Pro'],
firstDay:1,
editable:false,
height:540,
events: 'smjestaj-rezervacija-kalendar.php?SmjestajID=<?=$_GET['SmjestajID'];?>'
});
} catch (e){
errorMessage(e);
}
});
</script>
这是我的 smjestaj-rezervacija-kalendar.php:
<?php
header('Content-type: text/json; charset=utf-8');
include($_SERVER['DOCUMENT_ROOT']."/admin/config.php");
echo '[';
$SmjestajID = $_GET['SmjestajID'];
$rezultat_kalendar = mysqli_query($link, "SELECT * FROM smjestaj_kalendar WHERE KalendarSmjestaj=$SmjestajID ORDER BY KalendarID ASC");
$broj_unosa = mysqli_num_rows($rezultat_kalendar);
$i = 1;
while ($redak_kalendar = mysqli_fetch_array($rezultat_kalendar))
{ ?> {
title: 'Rezervirano',
start: '<?=$redak_kalendar['KalendarDatum']?>',
allDay: true
}
<?php
if ($i <> $broj_unosa){
echo ',';
}
$i ++;
}
echo ']';
?>
我尝试使用 http://fajitanachos.com/Fullcalendar-and-recurring-events/ json 文件,但仍然一无所获。
最佳答案
我用谷歌搜索发现 json 中不应该有 html 对象,所以我删除了 header('Content-type: text/json; charset=utf-8'); 并使用数组代替html 的。这个答案很有帮助:How do I get FullCalendar to display information from my JSON feed?
<?php
include($_SERVER['DOCUMENT_ROOT']."/admin/config.php");
$SmjestajID = $_GET['SmjestajID'];
$rezultat_kalendar = mysqli_query($link, "SELECT * FROM smjestaj_kalendar WHERE KalendarSmjestaj=$SmjestajID ORDER BY KalendarID ASC");
while ($record = mysqli_fetch_array($rezultat_kalendar)) {
$event_array[] = array(
'id' => $record['KalendarID'],
'title' => "Rezervirano",
'start' => $record['KalendarDatum'],
'allDay' => true
);
}
echo json_encode($event_array);
?>
关于php - FullCalendar 和 json 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167955/