2015-12-21 84 views
1

我想将我的FullCalendar事件列表发布到PHP控制器。 ajax发送和接收正确的工作,因为当我把事件console.log,它显示正确的事件。FullCalendar clientEvents发送到Laravel控制器

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

这是通过本次活动$("#save").click(function (e)

发送的问题: 无论我把控制器调试或读取输入::所有数据或具体输入 - >得到被从阿贾克斯发送(“事件”),我在控制台中的错误:

`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请求将显示它的结果在控制台。

回答

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); 

我想这一点,送经此阵,它会尽可能干净。