Я создаю веб-приложение для планирования и пытаюсь загрузить свои ресурсы из базы данных SQL. Он показывает, что он запускает мой php-файл для получения ресурсов, но ни один из них не отображается в календаре. Я не совсем уверен, почему они не отображаются, я просмотрел документы fullcalendar, и мне показалось, что я играю по правилам. Кто-нибудь знает почему?
Вот код для полного календаря:
var calendar = $('#calendar').fullCalendar({
schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
header:{
left:'promptResource, prev, next, today',
center:'title',
right: 'month, agendaDay, timelineThreeDays, listDay'
},
views: {
timelineThreeDays: {
type: 'timeline',
duration: { days: 3 },
slotWidth: 75,
}
},
businessHours: {
dow: [1, 2, 3, 4, 5],
start: "09:00",
end: "17:00",
},
resources: "resourceGetScript.php",
events: [
{ id: '1', resourceId: '1', start: '2017-04-05T10:00:00', end: '2017-04-05T11:00:00', title: 'event 1', doctor: 'Habib Habib'},
],
defaultView: "timelineDay",
minTime: "09:00",
maxTime: "17:00",
weekends: false,
slotDuration: "01:00:00",
allDaySlot: false,
selectable: true,
theme: true,
contentHeight: 800,
eventOverlap: false,
resourceAreaWidth: "12%",
slotWidth: 200,
resourceLabelText: 'Rooms',
select: function(start, end, allDay, jsEvent, view) {
alert("test");
},
eventClick: function(calEvent, jsEvent, view){
var myResource = calendar.fullCalendar('getEventResource', calEvent);
myResource.title = "Change";
calendar.fullCalendar('refetchResources');
alert('Event: ' + calEvent.title + " " + calEvent.resourceId + " " + myResource.title);
},
resourceRender: function(resourceObj, labelTds, bodyTds){
labelTds.on('click', function(){alert("clicked" + resourceObj.id + resourceObj.title);});
}
})
и вот код для resourceGetScript.php, где я получаю свои ресурсы из базы данных:
<?php
session_start();
include("includes/databaseHandler.inc.php");
if(!isset($_SESSION['name'])){
header("Location: ../index.php");
}
if($stmt = mysqli_prepare($conn, "SELECT * FROM rooms")){
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$resources = array();
while ($row = mysqli_fetch_assoc($result)){
$resourceArray['id'] = $row['id'];
$resourceArray['title'] = $row['title'];
$resources[] = $resourceArray;
}
echo json_encode($resources);
}
?>
Не в полной мере использовать функцию ресурсов FullCalendar. Но, чтобы устранить эту проблему, сначала попробуйте ввести жесткий код в некоторые ресурсы, используя следующую документацию: https://fullcalendar.io/docs/resource_data/resources_array/.
Вы можете использовать эту демонстрацию, чтобы вручную создать ресурс и протестировать ваш файл PHP: https://github.com/StarterSquad/fullcalendar-resource/blob/master/demos/json-resource-events.php.
Если это работает правильно, запустите resourceGetScript.php файл и print_r ($ ресурсы) прямо перед jscon_encode ($ ресурсы) чтобы убедиться, что вы правильно структурировали ресурс. Также проверьте формат текста с помощью mb_detect_encoding () и, если нужно, конвертировать в UTF-8, если что mb_convert_encoding ().
Я надеюсь, что это поможет вам отладить вашу проблему. Извините, что я мог дать вам прямой ответ.
Других решений пока нет …