1

通常、次のような ajax リクエストがあります。

$.ajax({
    type: 'GET',
    url: "/biboundsoptimization",
    data: {
        objects: '2',
    },
    success: function (data) {
        console.log(data);
        alert(data);
    },
    error: function (data, status, er) {
        alert("error: " + data + " status: " + status + " er:" + er);
    }
});

しかし、今はデータフィールドの変数の数を知ることができません。たとえば、クライアントが 2 を入力すると、データ フィールドは次のようになります。

data: {
    objects1: value of objects1,
    objects2: value of objects2,
},

クライアントが 3 を入力した場合、データ フィールドは次のようになります。

data: {
    objects1: value of objects1,
    objects2: value of objects2,
    objects3: value of objects3,
},

ajax リクエストの前に、クライアントはすでに各オブジェクトの値を異なる入力フィールドに入力しています。しかし、彼が入力するまで、私はその番号を知りません。なので、上記のように書くことはできません。すべてのオブジェクトを取得するには、クライアントから提供されたループ回数だけループする必要があることは明らかです。私は次のようなことを試みました:

for (int i = 1; i < clientValue; i++) {
    'objects' + i: $('#objects' + i).val(),
}

しかし、うまくいきません。文法的に間違っています。誰でもそれで私を助けることができますか?ありがとう!

4

5 に答える 5

2

データが FORM から取得されている場合は、jquery シリアル化関数を使用して、すべてを自動的にまとめることができます。

       var formData = $('#yourform').serialize();

その後、ajaxリクエストでこのようなことを行うことができます

       var request = $.ajax({
            type: 'POST',
            url: 'ajaxHandler.php',
            cache: false,
            data: formData, //all the data is automatically ready for you now
            dataType: 'json'
        });
于 2013-08-28T14:59:34.767 に答える
1

次のように、すべてのオブジェクトを含むオブジェクトを動的に作成できます。

var dataToPost = {};

for(int i = 1; i < clientValue; i++){
     dataToPost['objects' + i] = $('#objects' + i).val();
}

そして、このように ajax 呼び出しを渡します

data: dataToPost,
于 2013-08-28T05:25:17.080 に答える
0

すべての入力にクラスを追加し、 $.each 関数を使用します

<input id="object1" class="object" />
<input id="object2" class="object" />
var data = {};
var id;
$('.object').each(function(){
   id = $(this).attr('id');
   data[id] = $(this).val();
});
于 2013-08-28T05:30:32.980 に答える