资源未从 PHP JSON 源加载



我正在创建一个调度 Web 应用程序,并尝试从我的 SQL 数据库加载我的资源。它显示它正在运行我的php文件来检索资源,但没有一个显示在日历上。我不太确定为什么它们没有显示,我浏览了全日历的文档,在我看来,我正在遵守规则。有人知道为什么吗?

这是完整日历的代码:

   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。

如果它工作正常,请在 jscon_encode($resources( 之前运行 resourceGetScript.php 文件和 print_r($resources(,以确保您正确地构建了资源。还要使用 mb_detect_encoding(( 检查文本的格式,如果需要,如果使用 mb_convert_encoding(( 转换为 UTF-8。

我希望这可以帮助您调试问题。对不起,我可以给你一个直接的答案。

相关内容

  • 没有找到相关文章