使用JavaScript迭代DataTables中的行

时间:2015-12-09 16:42:04

标签: javascript jquery mysql datatable iteration

基本上问题是我在DataTable中得到了重复的结果。

在我的应用程序中,用户将输入一个值,该值将从数据库返回一个对象数组,然后这些记录将填充在DataTable中。目前我遇到的问题是表中的所有记录都是相同的。

DataTable中应该有100条不同的记录,而不是100条完全相同的记录。我没有看到任何显示如何通过数据库迭代对象数组的示例,以一种可以由DataTable处理的方式。

我应该可以使用rows.add()但是表格中没有显示任何内容,而我看到的另一个选项是rows().every(),其中没有类似于我正在做的示例。

任何参考,资源或见解都会非常有用。谢谢!

用户输入:

<p> Year:  <input id="YearNbrId" type="text" th:field="*{YearNbr}" /> </p>

按钮:

<input type="button" value="Locate" id="goToDetails" />

JavaScript代码段

$(document).ready(function() {
var table = $('#Orders').DataTable();

$('#goToDetails').on('click', function() {
    var YearNbr = $('#YearNbrId').val();
    var url = './eData/locate?YearNbr=' + YearNbr;

    $.get(url, function(result) {
        console.log(result);

        for (var i = 0; i < result.length; i++) {
            var myOrder = result[i];

            table.row.add([
                    null, // place holder
                    myOrder.yearNbr,
                    myOrder.orderNm,
                    '<input>', // user input
                    myOrder.model,
                    new Date(myOrder.Date).toJSON().slice(0, 10),
                    myOrder.srcCode,
                    null,
                    '<input>'
                ]).draw(false)
                .nodes()
                .to$();
            }
        });
    });
});

1 个答案:

答案 0 :(得分:0)

您可能想要查看JQuery .each函数。您可能需要执行以下操作:$(result).each(function(i,obj) {//code here});其中i是数组中的位置,obj是结果中的当前记录。