DataTables中出现Uncaught TypeError: Cannot read property 'url' of undefined错误

4

我在控制台中遇到了这个错误,它不允许我执行将值获取到数据表中的任务。我会在下面发布我的代码:

$(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(); 请问有人可以帮我解决这个问题吗?

table.ajax 为 null 或未定义。当你 console.log(table) 时,你看到什么? - Rory McCrossan
我相信它是未定义的。 - DEV
这就是错误提示的内容。 - kosmos
1
不要使用alert,而是使用console.log(table)来查看对象属性。 - kosmos
这是我在 console.log(table); 上得到的内容:[prevObject: jQuery.fn.init[1], context: document, selector: "table.container-fluid", oApi: Object] - DEV
显示剩余5条评论
1个回答

3
在DataTables 1.10中,命名规则已经改变,请参阅API获取更多信息。
要访问以前版本的API,请将表格初始化为$("#logTable").dataTable(),其中小写d。要访问更新的API,请使用$("#logTable").DataTable(),其中大写D
请使用DataTable()而不是dataTable()来初始化您的表如下所示:
var table = $('table.container-fluid').DataTable({
    // ... skipped ...
});

或者,如果您需要访问旧的API并使用dataTable()进行初始化,您可以按照下面所示调用新的API方法:

var table = $('table.container-fluid').dataTable({
    // ... skipped ...
});

table.api().ajax.url(newURL).load();

嘿,谢谢回复,但那并没有帮助。我仍然得到相同的错误。 - DEV
@davidnoronha,根本不需要使用ajax.reload,因为您正在使用ajax.url().load()在您的情况下是相同的东西。 - Gyrocode.com
感谢提供信息。回复晚了很抱歉。它正在从phpmyadmin数据库中获取数据。我猜 serverSide: true 是必须的对吗? - DEV
table.api() 没有起到作用。添加后出现的错误是 table.api is not a function。尝试使用 table.reload() 也会出现相同的错误,即 table.reload is not a function - DEV
@davidnoronha,你最终找到解决方案了吗?我也卡在同样的问题上。你能告诉我是什么解决了你的问题吗?谢谢。 - Ishan Tiwary
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接