3

我正在尝试添加来自 Ajax 的记录作为响应。我的代码如下;

alertPs:我可以正确看到带有命令的ajax响应。

html代码

<table id="seller-table" class="table" data-filter="#filter" data-page-size="5">
    <thead>
        <tr>
            <th data-toggle="true">ID</th>
            <th>Date</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>

数据为 json

 var data = [{"id": 10, "date": "Mon Aug 04 2014 17:00:00"}, 
             {"id": 11, "date": "Tue Aug 05 2014 17:00:00"},
             {"id": 12, "date": "Wed Aug 06 2014 17:00:00"}];

jQuery 代码

    $.ajax({
        url : '/bid/find/',
        data: {  },
        success : function(data) {
            $('table tbody').append(data);
            $('table').trigger('footable_redraw');
        },
        error : function(xhr, statusText, error) { 
            alert("Error! Could not retrieve the data.");
        }
    });
4

1 回答 1

7

AJAX 调用返回的对象数组必须先转换为 HTML 元素,然后才能添加到表中:

$('table').footable();

function create_seller_table_row (item) {
    var row = $('<tr><td>' + item.id + '</td><td>' + item.date + '</td></tr>');
    return row;
}

$.ajax({
    url : '/bid/find/',
    data: {  },
    success : function(data) {
        $.each(data, function(index, item){
            var row = create_seller_table_row(item);
            $('table tbody').append(row);
        });

        $('table').trigger('footable_initialize');
    },
    error : function(xhr, statusText, error) { 
        alert("Error! Could not retrieve the data.");
    }
});

然后使用footable_initialize 触发器而不是footable_redraw 触发器。

这是它的一个jsfiddle

于 2014-08-07T11:44:49.960 回答