1

データが未定義であるため、配列で['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()});

それを行うためのより良い方法はありますか?またはどうすればそれを機能させることができますか?感謝するのを手伝ってください;/

4

1 に答える 1

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を使用して、すべてをフォームに投稿し、サーバー上で整理することもできます。

于 2012-06-09T09:22:36.307 に答える