完整日历 - 为事件对象添加额外属性

时间:2015-12-01 17:11:41

标签: php jquery json fullcalendar

可能是由于我缺乏理解,但我使用PHP返回JSON字符串来恢复事件数据。

<?php

  $json = array();

  // Query that retrieves events
  $requete = "SELECT * FROM DoctorAvailability ORDER BY id";

   try {
        $bdd = new PDO("mysql:host=$servername;dbname=$dbname",$username,$password);
      } catch(Exception $e) {
        exit('Unable to connect to database.');
      }
     // Execute the query
    $resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));

    echo json_encode($resultat->fetchAll(PDO::FETCH_ASSOC));
 ?>

在数据库中有六个字段。

Id, title, start, end, backgroundColor, name.

我想把这个名字带回去,虽然比如在eventClick中我试试

 eventClick: function (calEvent, jsEvent, view) {
           calEvent.name;

它不存在。

我知道我的理解中缺少一些东西,但我花了很多年时间用谷歌搜索无济于事。

2 个答案:

答案 0 :(得分:1)

您可以查看使用eventRender,它允许您访问添加的非标准字段。

eventRender: function(event, element) {
    console.log(event.name);
}

来自docs

  

除上述字段外,您还可以添加自己的字段   每个事件对象中的非标准字段。 FullCalendar不会修改   或删除这些字段。例如,开发人员通常包括一个   用于回调的描述字段,例如eventRender。

<强>更新

这是我用来构建事件数据的方法:

// construct the array
foreach ($events as $e) {
    $eventList[] = array(
        'id' => 'event-' . $e->id, // unique identifier for aligning editing window 
        'allDay' => false, // makes the times show
        'title' => $e->fullname, // shows the user's name
        'start' => $e->start_time, // their start time (start working)
        'end' => $e->end_time, // their end time (done working)
        'notes' => $e->notes ? $e->notes : '', // notes, if applicable
        'className' => 'event-' . $e->id,
        'user' => $e->user
    );
};

// echo the data, json encoded for the calendar
echo json_encode($eventList);

然后,我使用eventRender

访问上述特定数据
eventRender: function(event, element) {
    element.qtip({
        content: event.notes, // This is a non-standard, custom attribute!
        position: {
            my: 'top left',
            at: 'bottom left'
        }
    });
},

答案 1 :(得分:0)

FullCalendar版本4: 任何自定义值都可以在事件对象

的“ extendedProps ”中找到
events: [

                    {
                    title: 'My Title',
                    My_Custom_Value: 'non-standard Event Object field',
                    allDay: false,
                    start: 1501056000000,
                    end: 1501057800000
                    }
],

eventRender: function(info){

                    console.log("_______ info _______\n");
                    console.log(info.event.extendedProps.My_Custom_Value);
}

extendedProps
一个普通对象,具有在解析过程中指定的其他其他属性。在显式给定的extendedProps哈希中接收属性,以及其他非标准属性。”

https://fullcalendar.io/docs/event-object