私はフルカレンダーを使用していますが、終日のイベントであるイベントがいくつかあります。一般的に、私のphpはすべてを設定します'allDay' => 'false'
。時間を指定しないと時間が追加されることに気づきました。
trueを指定しない限り、すべての値に対してすべてのデフォルトをfalseに設定したいと思います。
私のPHPフェッチは次のとおりです。
$sql = "SELECT `id`, `title`, `time`, `start`, `end`, `url`, `backgroundColor`, `textColor`, `className`,
`allDay` FROM calender WHERE length('column') > '0'";
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $row){
$return[]=array('id'=>$row['id'],
'title'=>$row['title'],
"allDay" =>$row['allDay'],
'start'=>$row['start'].' '.$row['time'],
'end'=>$row['end'],
'url'=>$row['url'],
'backgroundColor'=>$row['backgroundColor'],
'textColor'=>$row['textColor'],
'className' =>$row['className']);
}
$dbh = null;
header('Content-type: application/json');
echo json_encode($return);
jQuery関数は次のとおりです。
$(document).ready(function() {
$('#calendar').fullCalendar({
editable: false,
events: "json-events.php",
eventDrop: function(event, delta) {
alert(event.title + ' was moved ' + delta + ' days\n' +
'(You cannot update these fields!)');
},
loading: function(bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
},
});
});
どこに値を追加するのかわかりません。mySQLに「allDay」をtrue/falseとして格納していますが、文字列として返されます。だから私は実際にjsonがファイルをエンコードする前にそれをカバーする方法を知っています。または、データの確認後にjQuery/javascriptで変更します。