2012-03-29 4 views
0

の多次元配列を構築します。私はこのような何かを構造化されたシンプルなHTMLフォームを持つフォームからデータを取得し、それ

私はjQuery POSTリクエストを使ってサーバに送ることができる何らかの配列で終わるだろう。

このような何か:私はJSで多次元配列を構築する方法がわからない

products => Array(
    [0] => Array(
     id => 1134, 
     amount => 2 
    ), 
    [2] => Array(
     id => 1134, 
     amount => 3 
    ) 
) 

、私はすべてのJSオブジェクトまたはいずれかJSON、精通していないです。これを行う最も簡単な方法は何ですか?

答えて

1

これを試してみてください:

var $trs = $("tr").filter(function() { 
    return $(this).data("selected"); 
}); 

var products = []; 
$.each($trs, function(i, $tr) { 
    products.push({ 
     "id": $('input[type="hidden"]', $tr).val(), 
     "amount": $('input[type="text"]', $tr).val() 
    }); 
}) 

Example fiddle

products変数は、あなたはAJAX呼び出しで使用できる形式にする必要があります。あなたの作業コードでは、例えば、クラスであるinput[attr]よりも良いセレクタを使用することができます。

+0

感謝。これは行く方法のようですが、私は変数をシリアル化することができません。 http://jsfiddle.net/eg99X/2/ – WraithLux

+0

このメソッドを使用すると、products変数をシリアル化する必要はありません。ここでのコードは、serializeがフォーム全体に対して行うことですが、 'selected'データパラメータがfalseに設定された行は除きます。 –

+0

私はこれが質問の範囲を超えていることを知っていますが、あなたが私に尋ねる気にならないならば。 - 2つの別々のフォームがあり、このフォームデータを別のフォームに追加したいとします。 – WraithLux

1

フォームタグ内に必要なデータがあるとします。投稿したくないデータがある場合は、<form>の内部にはいけません。

$('form').submit(function() { 
    alert($(this).serialize()); 
    return false; 
}); 

さらに詳しい情報:http://api.jquery.com/serialize/

関連する問題