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

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

Fullcalender V5 RefetchEvents 問題

Fullcalender V5 RefetchEvents 問題

PHP
拉丁的傳說 2023-10-15 15:37:10
我正在使用 Fullcalender Scheduler V5。我添加了 calendar.refetchEvents(); 在 eventDrop、eventResize、eventClick 的末尾也是如此。它運作良好。但是當我在其他函數中使用它來添加/編輯事件時,它不起作用。這是我的其他代碼:/-----------------------Load.php------------------------------//    <?phprequire_once('../../common/conn_check.php');require_once('../../common/common.php');$data=array();$query ="SELECT * FROM event_schedule "; $statement = pg_query($conn,$query);$result = pg_fetch_all($statement);foreach($result as $row){     $data[] = array(  'id' => $row["id"],  'resourceId' => $row["Room"],  'title' =>$row["EventName"],  'start'   => $row["StartTime"],  'end'   => $row["EndTime"] );}echo json_encode($data);?>/---------------AddEvents.php-------------------//   <?php    require_once('../../common/conn_check.php');//for using the mysql connection    require_once('../../common/common.php');//common function                if (isset($_POST['start']) && isset($_POST['end'])){        $EventName = $_POST['EventName'];        $Room = $_POST['Room'];        $start = $_POST['start'];        $end = $_POST['end'];          $sql="INSERT INTO event_schedule           (Room,EventName, StartTime,EndTime)           VALUES            ('$EventName','$Room','$start', '$end')";                           $result = pg_query($conn,$sql);            echo json_encode(array('success'=>true));    }        ?>我已經嘗試了好幾個星期了,因此我失去了信心。作為一個初學者,我無法弄清楚出了什么問題。有人請幫忙。
查看完整描述

1 回答

?
慕虎7371278

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

這里最簡單的選擇是使其成為calendar全局的,以便可以在所有范圍內訪問它。


例如


<script>

var calendar; //global variable


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

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


  calendar = new FullCalendar.Calendar(calendarEl, { //don't re-declare it here, just assign it


///...etc

但全局變量通常不是最佳實踐 - 如果您不小心,它可能會導致其他問題。因此,另一個選擇是停止使用內聯事件處理程序來觸發 saveData,而是在 DOMContentLoaded 塊內添加一個事件處理程序,當然該塊calendar已經在范圍內。您使 saveData 從 AJAX 調用返回一個 Promise,然后在事件處理程序中向其附加一個.done()回調,并在其中調用 refetchEvents。


所以在這個版本中,你的按鈕將變成


<button type="button" class="btn btn-primary" id="savedata">SAVE</button>

saveData() 將變為:


function saveData()

{

  var Room = document.getElementById("Room").value;      

  var EventName = document.getElementById("EventName").value;

  var start = document.getElementById("start").value;

  var end = document.getElementById("end").value;


  var promise = $.ajax({

    url: "addEvent.php",

    type:"POST",

    data:{ EventName: EventName, start:start, end: end },

  });

 

  $('#ModalAdd').modal('hide');

  return promise;

}

最后在 DOMContentLoaded 區域:


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


   //....everything which is already there....and then...


   $("#savedata").click(function() {

     var promise = saveData();


     promise.done(function(data) {

       calendar.refetchEvents();

     });

   });

});

盡管看起來需要更多工作,但這是一個比使用全局變量更好的結構化版本。



查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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