我创建了一个数组并试图通过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
)
)
)
答案 0 :(得分:1)
更新了上面的jsfiddle:
...
workout[id][i] = **{}**; // key: set
....
这不是数组,而是具有属性的对象。在PHP中,这将是一个关联数组,但这个概念在javascript中是未知的。