1

データベースからデータを取得するためにphpを使用してmysqlデータベースでフルカレンダーを使用しています。fullcalendars 'getview' からのデータで選択を変更しようとしています。現在のビューの月の初日が必要で、このコードを実装しようとしています:

resources: 
            { 

                url: 'resources.php',
                data: {'period_start': moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"), 'period_end': moment( $("#calendar").fullCalendar("getView").intervalEnd ).format("YYYY-MM-DD") } ,
            //  data:{'period_start':test},
                type: 'POST',

                error: function() {
                    $('#script-warning').show();
                }
            },

残念ながら、これは常にビューの開始日などではなく、現在の日付を示します。ここで何が欠けていますか?

すべてが完全に mysql に送られ、select は post で機能します。唯一のことは、それが役に立たない今日の日付を常に教えてくれることです。

このコードを使用すると、完全に機能します。イベントをクリックすると、現在のビューの初日が表示されます。

eventClick: function(event) {
        alert(moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"));
            }, 

編集:

関数を追加しました:

function start(){
var view =$("#calendar").fullCalendar("getView").start;
return view};

eventclick で start() を使用すると、完全に機能しますが、リソースで使用すると機能しません。リソースを関数として構築する必要があると思います(リンク)が、これを理解するにはあまりにも初心者です。関数を使用して mysql からフィードを取得することはできますか?

4

1 に答える 1

0

私はなんとかこの半額のソリューションを見つけ出すことができました。それはできますが、ユーザーは最新の情報を取得するために不要な更新を行う必要があります。

function start(){return Cookies.get('fullCalendarStart');};

$('#calendar').fullCalendar({
viewRender: function(view) {
            Cookies.set('fullCalendarStart', view.intervalStart.format(), {path: ''});
            },

resources: 
            { 
                url: 'resources.php',
              data:{'period_start':start()},
                type: 'POST'
            }

{)

これにより、ビューの開始日が resources.php の投稿に投稿されます。ここで、それを取得して mysql select で使用できます。Fullcalendar から好きなものを追加し、それを Cookie に入れて、このように mysql select で使用できます。

残念ながら、これは完璧な解決策ではなく、Cookie なしで機能することを望んでいます。

編集

そしてより良い解決策:

resources: function(callback){
                    setTimeout(function(){
                    var view = $('#calendar').fullCalendar('getView');
                    $.ajax({
            url: 'feed.php',
            dataType: 'json',
            cache: false,
            data: {
                start: view.start.format(),
                end: view.end.format(),
                timezone: view.options.timezone
                }

            }).then(function(resources){callback(resources)});      
        },0);
    },

これにより、イベントをフェッチするときのように、開始パラメーターと終了パラメーターが追加されます。$feed_start = $_GET['start'];feed.php に追加 して'$feed_start'、mysql select で変数を使用できます。https://github.com/fullcalendar/fullcalendar-scheduler/issues/246?_pjax=%23js-repo-pjax-containerから入力を取得しました

于 2017-01-10T09:40:06.340 に答える