2015-11-22 27 views
0

有誰知道如何根據自定義字段過濾fullcalendar上顯示的帖子嗎?如何使用FullCalendar爲PHP中的JSON設置自定義過濾器?

例如:如果我只想顯示「media == twitter」,我將如何使用一個json feed來完成此操作?

我很欣賞任何想法。的JSON

例子:

{ 
    "id": "1", 
    "title": "Title", 
    "description": "Details", 
    "media": "twitter", 
}, 
{ 
    "id": "2", 
    "title": "Title", 
    "description": "Details", 
    "media": "linkedin", 
}, 
{ 
    "id": "3", 
    "title": "Title", 
    "description": "Details", 
    "media": "facebook", 
} 

以下是基本的設置我到目前爲止這是目前工作正常的fullcalendar的。的FullCalendar代碼

實施例:

$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     header: { 
      left: 'prev,next today', 
      center: 'title', 
      right: 'month,agendaWeek,agendaDay' 
     }, 
     defaultDate: '<? echo '2015-11-01'; ?>', 
     editable: false, 
     events: "json.php", 

     eventClick: function(event) { 
     if (event.url) { 

     window.open('#' + event.id,"_self"); 

     return false; 
      } 
     } 

    }); 

回答

0

根據上述描述作爲溶液進行過濾JSON飼料,則需要使用json_decode()函數來JSON數據解碼成PHP關聯陣列和用於將過濾器應用於同時遍歷關聯數組。

請參考示例代碼片段來篩選JSON數據

<?php $json_data='[ 
    { 
     "id": "1", 
     "title": "Title", 
     "description": "Details", 
     "media": "twitter" 
    }, 
    { 
     "id": "2", 
     "title": "Title", 
     "description": "Details", 
     "media": "linkedin" 
    }, 
    { 
     "id": "3", 
     "title": "Title", 
     "description": "Details", 
     "media": "facebook" 
    } 
]'; 
     $result=NULL; 
     $json_array=json_decode($json_data,true); 
     if($json_array) 
     { 
      foreach($json_array as $json) 
      { 
       switch($json['media']) 
       { 
       case 'twitter': 
       $result=$json; 
       break; 
       } 
      } 
     } 
     echo json_encode($result); 
?> 

$結果變量將持有過濾JSON數據。

+0

感謝您的幫助魯賓,定製我的json數據後,它工作得很好。有沒有辦法抓住多個媒體?如果例如ID 2和ID 3有媒體推特以及它似乎並沒有拉別人?我會添加一個循環到這個或什麼東西,讓這個工作? – Matt

+0

感謝@Matt接受答案。關於抓取多個媒體的問題,您需要在上面的代碼片段中將$結果定義爲一個數組,並且上面的代碼片段可以很好地適用於多個過濾器 –