未捕获的TypeError:无法在DataTables中读取未定义的属性'url'

时间:2016-02-10 09:35:37

标签: javascript jquery ajax datatables

我在控制台中收到此错误,这不会让我执行将值提取到数据表中的任务。我将在下面发布我的代码:

$(document).ready(function() {
    var product_id = '<?php echo $product->product_id; ?>';
    var table = $('table.container-fluid').dataTable({
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "agent/order/getProduct",
            "data": { "pid": product_id }
        },
    });
    $('#selectProduct').click(function() {
        var id = $("#selectproduct").val();
        var product = ('agent/order/getProduct?product_id=' + id);
        table.ajax.url(product).load();
        table.reload();
    });

以下是控制器代码:

public function getProduct () {
    $prod_id = $this->input->post('pid');
    $this->load->model('order_m');
    $prod = $this->order_m->getProductById($prod_id);
    echo json_encode($prod);
} 

在我检查问题时使用chrome,它会指出:table.ajax.url(product).load();

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

在DataTables 1.10中,命名约定已更改,有关详细信息,请参阅API

您需要使用小写$("#logTable").dataTable()将表格初始化为d,以便能够访问以前的版本API或使用大写$("#logTable").DataTable()的{​​{1}}来访问更新版本API。

使用D而不是DataTable()初始化您的表格,如下所示:

dataTable()

或者,如果您需要访问较旧的API并使用var table = $('table.container-fluid').DataTable({ // ... skipped ... }); 进行初始化,则可以调用较新的API方法,如下所示:

dataTable()