1

我正在使用带有 Java servlet 的Datatables.net :

$(document).ready(function () {
    $('#dayClosing').click(function () {
        $.post("RecallHoldTrx", {
            TrxHoldID: oData[0]
        }, function (data2) {
            for (k = 0; k < data2.length; k++) {
                var getItemCode = data2[k];
                $.post("GetItemDetail", {
                    itemCode: getItemCode
                }, function (data) {
                    oTable.fnAddData([data[0], data[1]]);
                });
            }
        });
    });
});

循环根据它的长度准确地迭代,但每次迭代都插入相同的记录;但是

当我alert()var getItemCode = data2[k];as

var getItemCode = data2[k];
alert(getItemCode);

当我按确定,确定时,每次迭代都会准确地在数据表中插入新行。但是当我删除警报时,在每次迭代中插入相同的记录,有时是第一条记录,有时是最后一条记录。

我们如何在没有警报的情况下插入包含新数据的行?

注意:oTable.fnAddData()用于在Datatables.net中添加行

4

1 回答 1

0

首先,我建议在第一个 ajax 响应中发送所有数据。如果可以由一个人完成,为什么要进行如此多的 ajax 调用?

我认为您的范围界定有问题。你可以使用 $.each 来循环你的结果集。像这样:

$(document).ready(function () {
    $('#dayClosing').click(function () {
        $.post("RecallHoldTrx", {
            TrxHoldID: oData[0]
        }, function (data2) {
            $.each(data2,function(index,item) {
                $.post("GetItemDetail", {
                    itemCode: item
                }, function (data) {
                    oTable.fnAddData([data[0], data[1]]);
                });
            });
        });
    });
});
于 2012-06-25T19:54:37.560 回答