0

それぞれが個々の入力を含むn個のdivを含むフォームがあります。これらの div は同じクラス名「c1」の下に存在しますが、他の属性は含まれていません。各 c1 には、一意のクラス名を持つ同じ入力が含まれています。各 div には常に同じスタイルの入力が含まれます。この例は次のようになります。

<div class="c1">
    <input class="in1" type="text"/>
    <input class="in2" type="text"/>
</div>
<div class="c1">
    <input class="in1" type="text"/>
    <input class="in2" type="text"/>
</div>
<div class="c1">
    <input class="in1" type="text"/>
    <input class="in2" type="text"/>
</div>

情報は、jQuery の $.post(...) を使用してポスト経由で送信する必要があります。ユーザーがコンテンツを変更できるように、つまり c1 div を追加および削除するための ID システムは使用しません。収集した情報を n 個のアイテムの php ページに投稿する方法や、div に基づいて情報をまとめておく方法がわかりません。何かアドバイス?

serialize の使用を検討していますが、カプセル化された div に基づいて情報を一意に保つ方法がわかりません。map別の方法は、各 div を反復するコマンドを使用して、投稿の "data" 引数のカスタムを作成すること.eachですが、何かが私が間違った道に向かっていることを教えてくれます。

4

3 に答える 3

1

名前付きパラメータを自動生成するには、次のようにします。

    var postData = {};
    $(".c1").each(function() {
        var name = "input" + $(this).index();

        postData[name + "in1"] = $(this).find(".in1").val();
        postData[name + "in2"] = $(this).find(".in2").val()       
    })

    console.log(postData);

そして、AJAX経由でpostDataを送信するだけです

</p>

于 2012-04-24T20:24:38.710 に答える
0

.serialize()HTML コードに従うことに厳密な場合は、少なくとも を使用する必要があるため、jQueryのメソッドを使用するなど、自動的にできることは何もありませんname

手動で行うと、データを作成してから次のように投稿できます。

$("#btnSave").click(function() {

var dt = {},
    div = 0,
    arr = 0;

$(".c1").each(function() {
  // for each <div class="c1">
  $(this).find("input").each(function() {
    // for each <input> inside the <div>

    dt['p' + arr++] = 'd' + div + 
            '_c_' + $(this).attr("class") + 
            '_v_' + $(this).val();
  });
  div++;
});

// now, we post the data    
$.post("http://bing.com/", dt, function(data) {
  // do something...
});

return false; // dont post automatically

});

そして、あなたは次のようなものを持っています:

p0  _d_0_c_in1_v_1
p1  _d_0_c_in2_v_4
p2  _d_1_c_in1_v_2
p3  _d_1_c_in2_v_5
p4  _d_2_c_in1_v_3
p5  _d_2_c_in2_v_6

そしてd2_c_in2_v_6、文字列を次のように分割できます。

  • _d_分割用
  • _c_クラス名に
  • _v_入力値用

JsBin での実際の例

于 2012-04-24T20:42:51.680 に答える
0

動的に生成する場合は、入力ごとに一意の ID を設定できます。inp1、inp2 などのように。次に、それらの一意の ID に基づいてマップを作成できます。

于 2012-04-24T20:04:51.640 に答える