无法通过ajax获取完整的数组

Posted

技术标签:

【中文标题】无法通过ajax获取完整的数组【英文标题】:Can't get complete array through ajax 【发布时间】:2017-03-05 05:34:13 【问题描述】:

javascript

$.ajax(
    headers: 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),
    method: 'POST',
    url: "URL::to('/person/mission/punch/import')",
    data: 
        form_year: selected_year,
        forms: form.data
    ,
    success: function () 
        alert('success');
    ,
    error: function () 
        alert('fail');
    
);

我看到Chorme -> Network -> Header -> Form Data

这里有完整的数组。

我的 php

dd($_POST['forms']);

无法转储完整的 Array()。我使用 Laravel。

【问题讨论】:

form的定义是什么? 【参考方案1】:

您的索引值不正确,它必须是有效的数据或 json 对象

data: 
    form_year: selected_year,
    forms: $("#formID").serializeObject();
,

我创建了一个 jquery 函数,它将序列化的表单数据转换为 json 对象

$.fn.serializeObject = function()

    var o = ;
    var a = this.serializeArray();
    $.each(a, function() 
        if (o[this.name] !== undefined) 
            if (!o[this.name].push) 
                o[this.name] = [o[this.name]];
            
            o[this.name].push(this.value || '');
         else 
            o[this.name] = this.value || '';
        
    );
    return o;
;

Javascript

$.fn.serializeObject = function()

    var o = ;
    var a = this.serializeArray();
    $.each(a, function() 
        if (o[this.name] !== undefined) 
            if (!o[this.name].push) 
                o[this.name] = [o[this.name]];
            
            o[this.name].push(this.value || '');
         else 
            o[this.name] = this.value || '';
        
    );
    return o;
;

$.ajax(
    headers: 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content'),
    method: 'POST',
    url: "URL::to('/person/mission/punch/import')",
    data: 
        form_year: selected_year,
        forms: $("form").serializeObject();
    ,
    success: function () 
        alert('success');
    ,
    error: function () 
        alert('fail');
    
);

【讨论】:

以上是关于无法通过ajax获取完整的数组的主要内容,如果未能解决你的问题,请参考以下文章

通过ajax调用的Jquery完整日历事件

AJax通过PHP获取二维数组

通过ajax发布的数组在c#方法中为空

通过 Ajax 将多个复选框传递给 PHP

我无法从通过 Ajax 创建的选择元素中设置值或获取值

如何使用数组方法通过RMI从数据库的表中获取完整的数据?