2017-04-17 32 views
1

Fullcalendarバンドル(Symfony2)をインストールしました。追加しているすべてのイベントが正しく表示されていました。今度はeventClick関数をFullcalendar.jsに追加します(これはテストのためにopen.window('page')と一緒に動作します)。今私はalert()またはwindow.open()の代わりに何かのこのイベント(ID、名前、...など)に関するすべての情報を取得したいと思います。データベースからJSONオブジェクトへのマッピングFullcalendar

どうすればいいですか?

$(function() { 
/* initialize the calendar 
-----------------------------------------------------------------*/ 
//Date for the calendar events (dummy data) 
var date = new Date(); 
var d = date.getDate(), 
    m = date.getMonth(), 
    y = date.getFullYear(); 
$('#calendar-place').fullCalendar({ 
    monthNames: ["Janvier","Février","Mars","Avril","Mai","Juin","Julliet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre" ], 
    monthNamesShort: ['Jan','Fev','Mar','Avr','Mai','Jun','Jul','Aou','Sep','Oct','Nov','Dec'], 
    dayNames: [ 'Diamnche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'], 
    dayNamesShort: ['Diu','Dill','Dim','Dix','Dij','Div','Dis'], 

    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    buttonText: { 
     today: 'today', 
     month: 'month', 
     week: 'week', 
     day: 'day' 
    }, 
    events: 
    { 
     url:Routing.generate('fullcalendar_loadevents', { month: moment().format('MM'), year: moment().format('YYYY') }), 
     color: '#45b2ea', 
     textColor:'white', 

     error: function() { 
      alert('Error receving events'); 
     } 
    }, 
    viewRender: function (view, element) { 
     var month = view.calendar.getDate().format('MM'); 
     var year = view.calendar.getDate().format('YYYY'); 
    }, 

    eventClick: function() { 

     window.open('login') 
    }, 





    eventDrop: function(event,delta,revertFunc) { 
     var newStartData = event.start.format('YYYY-MM-DD'); 
     var newEndData = (event.end == null) ? newStartData : event.end.format('YYYY-MM-DD'); 

     $.ajax({ 
      url: Routing.generate('fullcalendar_changedate'), 
      data: { id: event.id, newStartData: newStartData,newEndData:newEndData }, 
      type: 'POST', 
      dataType: 'json', 
      success: function(response){ 
       console.log('ok'); 
      }, 
      error: function(e){ 
       revertFunc(); 
       alert('Error processing your request: '+e.responseText); 
      } 
     }); 

    }, 
    eventResize: function(event, delta, revertFunc) { 

     var newData = event.end.format('YYYY-MM-DD'); 
     $.ajax({ 
      url: Routing.generate('fullcalendar_resizedate'), 
      data: { id: event.id, newDate: newData }, 
      type: 'POST', 
      dataType: 'json', 
      success: function(response){ 
       console.log('ok'); 
      }, 
      error: function(e){ 
       revertFunc(); 
       alert('Error processing your request: '+e.responseText); 
      } 
     }); 

    }, 
    editable: true 

}); 
}); 
+0

エラーの問題のような詳細を追加できますか? [良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask)、[最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/ help/mcve)あなたが試したことをコミュニティに示します。 – abielita

+0

eventclickのイベントオブジェクトは、常に定義されていません。私のコンソールには、イベントドロップとイベントのサイズ変更が正常に動作するにもかかわらず、タイトルのexplのためのタイトルの定義されていないプロパティが表示されます。 –

答えて

0

あなたはhttps://fullcalendar.io/docs/mouse/eventClick/でeventClickのドキュメントを読んでいる場合、それはあなたのクリックイベントの詳細を含む「イベント」オブジェクトが含まれてコールバックに使用可能なパラメータを示します。あなたがイベントに関するその他の情報を使用したい場合にはhttps://fullcalendar.io/docs/event_data/Event_Object/

eventClick: function(event, jsEvent, view) 
{ 
    alert(event.title); 
} 

あなたが現在イベントオブジェクトの複数のプロパティを見つけることができます。

ですから、このような何かを行うことができます。

+0

オブジェクトイベントは常にeventClickで定義されていません。 –

+0

あなたのコードは現在、eventClick定義内にイベントオブジェクトを宣言していません。私は答えをしたように、あなたはそこに書き込む必要があります。一度それをすると、うまくいかない理由はありません。あなたのカレンダーの設定を使った実例があります:https://jsfiddle.net/yog1jc45/1/ ajaxのソースをデモから呼び出すことができないので、ajaxのソースをいくつかのサンプルイベントに置き換えましたが、原則は同じ。イベントをクリックすると、イベントのタイトルを示すポップアップが表示され、問題はありません。 – ADyson

+0

私はあなたがすでに出来ていることをeventclick(event、jsEVent、view)とシンプルなアラートショーevent.titleに表示します。アラート(event.title)オブジェクトイベントを取得する –

関連する問題