FullCalendar clientEvents发送到Laravel Controller

时间:2015-12-21 17:58:42

标签: php jquery ajax laravel fullcalendar

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

这里没有我的事件数组:var events = $('#calendar').fullCalendar( 'clientEvents');

通过此活动发送的内容$("#save").click(function (e)

问题: 无论我在控制器中调试或读取输入::所有数据或从ajax发送的特定输入&gt; get(&#39; events&#39;),我都会在控制台中收到错误:< / p>

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

Ajax:

$("#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请求,它将在控制台中显示它的结果。

1 个答案:

答案 0 :(得分: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);

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