0

プロジェクトにフルカレンダーを使用しています。新しいイベントを mysql データベースに挿入できません。

AJAX を使用して実行できますが、変数を JS から php コードに渡すことができません。

ここに私のコードがあります:

$(document).ready(function() {

        var date = new Date();
        var d = date.getDate();
        var m = date.getMonth();
        var y = date.getFullYear();

        var calendar = $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            } ,
            defaultView: 'month',
            weekends: true,
            selectable: true,
            selectHelper: false,
            allDayText: 'ore di lavoro',
            editable: true,
            theme: true,



            select: function(start, end, allDay,jsEvent,view) {

             if (view.name === "month") {

                $('#calendar').fullCalendar('gotoDate', start);
                $('#calendar').fullCalendar('changeView', 'agendaDay');


            } else {

                var title = prompt('Riparazione racchetta da tennis:');
                if (title) {  
                    calendar.fullCalendar('renderEvent',
                        {
                            title: title,
                            start: start,
                            end: end,
                            allDay: allDay
                        },
                        true // make the event "stick"


                    );
                   $.ajax({

                      type: "POST",
                      url: "kot.php",
                      data: "title=" + title + "&start=" + start + "&end=" + end,

                   });
                $('#calendar').fullCalendar('refetchEvents');   
                }
                calendar.fullCalendar('unselect');
            }
            },

             eventSources: [

        // your event source
        {
            url: 'json-events.php',
            type: 'POST',

            error: function() {
                alert('there was an error while fetching events!');
            },
            //color: 'blue',   // a non-ajax option
            //textColor: 'black' // a non-ajax option
        },

        // any other sources...
      {
            url: 'kot.php',
            type: 'POST',
            data: {
                custom_param1: 'something',
                custom_param2: 'somethingelse',
                custom_param3: 'somethingelsee'

            },
            error: function() {
                alert('there was an error while fetching events!');
            },
            color: 'yellow',   // a non-ajax option
            textColor: 'black' // a non-ajax option
        }
    ]               
        });
    });
4

1 に答える 1

0

fullCalendar の初期化では、組織の問題として、関数呼び出しを初期化パラメーターとインライン js コードに配置することを検討する必要がある場合があります。

このような:

  function dayClickEvent(date, allday, jsEvent, view){
       //do something with date, allday, jsEvent, view 
  }
  function eventClickEvent(event, jsEvent, view){
       //do something with event, jsEvent, view
  }
  function eventAfterRenderEvent(event, element, view){
       //do something with event, element, view
  }
  function eventMouseoverEvent(event, jsEvent, view){
       //do something with event, element, view
  }
  function eventMouseoutEvent(event, jsEvent, view){
       //do something with event, element, view
  }
  function viewDisplayEvent(view){
       //do something with view
  }
  function loadingEvent(bool){
       //do something with bool
  }

次に、初期化するとき:

  $('#fullcalendar').fullCalendar({
    theme: true,
    header: {
        theme: true,
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    eventSources: [
        {
            url: 'my/calender/data/url',
            cache: false,
            type: 'POST',

            data: {
                ourl: 'my/actionable/url',
                myProperty: $("#foo").data("val") || ''
            },

            error: function (prob) {
                //handle ajax error for event load
            }
        }
    ],
    dayClick: function (theDate, allDay, jsEvent, view) {
        dayClickEvent(theDate, allDay, jsEvent, view);
    },
    eventClick: function (event, jsEvent, view) {
        eventClickEvent(event, jsEvent, view);
    },
    eventAfterRender: function (event, element, view) {
        eventAfterRenderEvent(event, element, view);
    },
    eventMouseover: function (event, jsEvent, view) {
        eventMouseoverEvent(event, jsEvent, view);
    },
    eventMouseout: function (event, jsEvent, view) {
        eventMouseoutEvent(event, jsEvent, view);
    },
    viewDisplay: function (view) {
        viewDisplayEvent(view)
    },
    loading: function (bool) {
        loadingEvent(bool)
    }
});

あなたのajaxの問題について...あなたのエンドポイント(サーバー/アプリ/ページ)がどのように構成されているかを知らなくても、ベルとホイッスルを使用したajax呼び出しの例を次に示します(あなたのajax呼び出しにはいくつかのプロパティが欠けているようです):

 $.ajax({
    type: 'POST',
    url: "my/Url/Here",
    dataType: "json",
    data: JSON.stringify({myProperty:"myValue"}),
    cache: false,
    contentType: "application/json; charset=utf-8",
    traditional: true,
    success: function (returnObject) {
        ///do something with returnObject
    },
    error: function (exception) {
        ///exception.responseText will contain any pertinent errors returned from server.
    }
});

jQuery $.ajax() メソッドの詳細については、こちらを参照してください

私は言います-エンドポイント(サーバー/アプリ/ページ)がどのように構成されているかを調べます(たとえば、処理するリクエストから何を受け入れ/検索するか)、それに応じてajax呼び出しをパラメーター化/調整します。

于 2012-11-29T15:29:20.550 に答える