【问题标题】:FullCalendar clientEvents sending to Laravel ControllerFullCalendar 客户端事件发送到 Laravel 控制器
【发布时间】:2016-03-27 21:10:42
【问题描述】:

我正在尝试将我的 FullCalendar 事件列表发布到 PHP 控制器。 ajax 发送和接收工作正常,就像我为事件放置 console.log 时一样,它正确显示了事件。

不,这是我的事件数组:var events = $('#calendar').fullCalendar( 'clientEvents');

这是通过这个事件$("#save").click(function (e)发送的

问题: 无论我在控制器中放入什么调试或读取 Input::all 数据或从 ajax 发送的特定 Input->get('events'),我都会在控制台中收到错误:

`too much recursion with about a hundred of n.fn.extend() below it.

阿贾克斯:

$("#save").click(function (e) {
            e.preventDefault();
            var events = $('#calendar').fullCalendar( 'clientEvents');

            $.ajax({
                url: "/admin/m/submit",
                headers: {
                    'X-CSRF-TOKEN': $('#crsf').val()
                },
                type: "GET",
                contentType: "application/json",
                data: {events:events},
                dataType: "json",
                success: function(response){
                    if (response['state']===0)

                        toastr.error('erreor');
                },
                error : function(e){
                    console.log(e.responseText);
                }

            });
        });

控制器:

$d= Input::all();
        dd($d['events']);
        return response()->json(['state'=>0],200);

dd 是 laravel 的调试器,因为这是一个 ajax 请求,所以会在控制台中显示结果。

【问题讨论】:

    标签: php jquery ajax laravel fullcalendar


    【解决方案1】:

    如果您只是打开任何浏览器调试器,您将发送的 OBJECTS 事件数组过于递归,您会看到它包含真正未使用的人员。您的代码与错误无关,而是像它一样发送事件。

    为此,我的解决方案是创建另一个数组来抓取只需要的人员:

        var events = $('#calendar').fullCalendar( 'clientEvents');
                    var fE = [];
                    $.each( events, function( key, value ) {
                        fE.push({
                            id : value._id,
                            Item : [{
     title : value.title,
                                start : value.start._d,
                                end : value.end._d}]
                        });
                    });
                    console.log(fE);
    

    我试过这个,在这个之后发送数组,它会尽可能干净。

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 2017-12-23
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多