数组不会通过ajax

时间:2014-01-19 11:35:11

标签: javascript jquery ajax arrays object

我创建了一个数组并试图通过ajax函数和其他变量将其传递给PHP文件。其他变量发送正常,但是锻炼阵列不发送。

workout = [];
$('.workout > section').each(function (i) {

    var self = $(this),
        exerciseid = self.attr('id'),
        id = i;

    workout[id] = []; // key: exercise id
    self.find('.exercise > li').each(function(i) {

        var self = $(this);

        if(!self.hasClass('newitem')) {

            workout[id][i] = []; // key: set
            workout[id][i]['exerciseid'] = exerciseid;

            self.find('input').each(function() {

                var self = $(this),
                    value = self.val(),
                    role = self.attr('data-type');

                workout[id][i][role] = value;

            });
        };

    });

});

Fiddle of the created array。我相信问题就在这里。

$.ajax({
    type: "post",
    url: "/lib/track.php",
    data: {
        'token' : token,
        'date' : date,
        'diet' : diet,
        'workout' : workout,
    }
})

我错过了什么吗?这是输出的$ _POST数组的当前状态:

Array
(
    [token] => 12E7AS13FEA52B9AEF4074CC8A5E8841C5AA087VA
    [date] => 2014-01-13
    [diet] => Array
        (
            [0] => Array
                (
                    [meal] => 2
                    [foodid] => 4043
                    [unit] => 3
                    [altgrams] =>  
                    [altname] =>  
                    [value] => 1
                )

        )    
)

1 个答案:

答案 0 :(得分:1)

更新了上面的jsfiddle

...
workout[id][i] = **{}**; // key: set
....

这不是数组,而是具有属性的对象。在PHP中,这将是一个关联数组,但这个概念在javascript中是未知的。