我得到的数据是未定义的,我想我不能在数组中['productId'],但我想我需要在json中使用这个结构,我尝试了几个变体,但它从来没有,我需要什么 我只是想通过ajax发送一个json。
jQuery(':checked').each(function(i){
data[i]['productId'] = jQuery(this).parent().find('.productId').val();
jQuery(this).parent().find('.attrGrp').each(function(j){
data[i]['attrGrps'][j]['uid'] = jQuery(this).find('.active').attr('id');
data[i]['attrGrps'][j]['amount'] = jQuery(this).parent().find('.amount').val();
});
});
jQuery.post(newSession, {json: data.serializeArray()});
有没有更好的方法呢?或者我怎样才能使它发挥作用? 帮助赞赏; /
答案 0 :(得分:0)
您需要在使用它们之前初始化数组和对象。字符串索引仅适用于对象。试试这个:
var data = [];
jQuery(':checked').each(function(i)
{
data[i] = {};
data[i].productId = jQuery(this).parent().find('.productId').val();
data[i].attrGrps = [];
jQuery(this).parent().find('.attrGrp').each(function(j)
{
data[i].attrGrps[j] = {};
data[i].attrGrps[j].uid = jQuery(this).find('.active').attr('id');
data[i].attrGrps[j].amount = jQuery(this).parent().find('.amount').val();
});
});
或者您可以使用jQuery().serialize,在表单中发布所有内容并在服务器上对其进行排序。