亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何正確使用JSON將事件/事件源傳遞給FullCalendar?

如何正確使用JSON將事件/事件源傳遞給FullCalendar?

PHP
DIEA 2021-05-07 14:11:18
我的最終目標是通過JSON動態傳遞eventSources。在甚至動態生成JSON內容之前,我試圖使用文檔示例通過JSON URL將一個簡單的單個事件傳遞到我的事件代碼中,該事件代碼是手動編寫的。我可以看到該網址有效,因為我可以通過php在我的wordpress網站中回顯結果,但是我將JSON網址傳遞給JS腳本時,日歷就崩潰了。我真的很head頭。還提到了prev / next按鈕觸發帶有本地時區日期的GET到JSON(例如,當前顯示月份的范圍)。我應該如何對json進行語法編碼,以便讓事件調用找到數據點范圍?我對這一切真的很困惑。JSON文件:calendar.json{    "title" : "something",    "start" : "2019-04-23"  }PHP文件:page-calendar.php<?php    //Wordpress function for URL to the file location    $url = get_stylesheet_directory_uri() . '/calendar.json';     $data = file_get_contents($url);    $content = json_decode($data);    echo $content->title; // Just to test if the URL works     echo $content->start; // This echos just fine    ?><html>      <head>        <meta charset='utf-8' />        <script>          document.addEventListener('DOMContentLoaded', function() {            var calendarEl = document.getElementById('calendar');            var calendar = new FullCalendar.Calendar(calendarEl, {              plugins: [ 'dayGrid' ],              events: $url;            });            calendar.render();          });        </script>      </head>      <body>        <div id='calendar'></div>      </body></html>
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

JSON必須是事件數組(即使該數組僅包含一個對象)。當前,您只有一個對象,fullCalendar不會讀取該對象。


使您的calendar.json文件如下所示:


[

  {

    "title" : "something",

    "start" : "2019-04-23"  

  }

]

您還需要稍稍更改代碼,以便將您的PHP$url變量視為PHP并進行渲染,并且這樣輸出也將由JS視為字符串,而不僅僅是按原樣注入JS:


events: "<?php echo $url; ?>"


查看完整回答
反對 回復 2021-05-14
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

如果您的php和fullcalendar在同一頁面上,則可能需要此頁面


<?php

   $url = get_stylesheet_directory_uri() . '/calendar.json';

?>


<html>

  <head>

    <meta charset='utf-8' />

    <script>

      document.addEventListener('DOMContentLoaded', function() {

        var calendarEl = document.getElementById('calendar');


        var calendar = new FullCalendar.Calendar(calendarEl, {

          plugins: [ 'dayGrid' ],


          events: "<?php echo $url; ?>";

        });


        calendar.render();

      });

    </script>

  </head>

  <body>

    <div id='calendar'></div>

  </body>

</html>

記住檢查一下calendar.json的輸出。它看起來應該像這樣


            [

             {

              "title" : "something",

              "start" : "2019-04-23"  

             }

            ];


查看完整回答
反對 回復 2021-05-14
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

我不確定,是否可以解決您的問題,我也不了解WordPress。但是,也許您可以嘗試使用WordPress內置函數,在這種情況下,您可以嘗試wp_remote_get或找到類似的函數來代替file_get_content()。因為可能出于安全性或權限方面的原因,您不確定不能從某些URL獲取內容。


您可以對其進行測試,chmod($url, 0000);以查看是否允許您更改文件的權限。然后,如果是權限問題,則可以將其添加chmod()到腳本中:


//Wordpress function for URL to the file location

$url = get_stylesheet_directory_uri() . '/calendar.json';

chmod($url, 0777);

//$data = file_get_contents($url);

$data = wp_remote_get($url);

$content = json_decode($data);

chmod($url, 0755);


echo $content->title;

echo $content->start;

您的PHP代碼似乎很好。也許,var_dump($url);以確保一切都很好。


另外,您可以嘗試更改


events: $url;


events: <?php echo $url; ?>


查看完整回答
反對 回復 2021-05-14
  • 3 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號