我正在使用示例-> http://datatables.net/examples/api/add_row.html

在我的情况下,我将ajax调用发送到收集了一系列参数的php脚本。然后,我将使用这些参数并尝试在DataTable中动态(且明显地)插入新行

在以下行:t.row.add( [我收到一个错误:“无法读取未定义的属性'add'”

有人可以帮忙吗?

<script>

    var asInitVals = new Array();
var oTable = $('.datatable-add-row table').dataTable({
    "bJQueryUI": false,
    "bAutoWidth": false,
    "sPaginationType": "full_numbers",
    "sDom": '<"datatable-header"fl><"datatable-scroll"t><"datatable-footer"ip>',
    "aaSorting":[[0,'desc']],
    "oLanguage": {
        "sSearch": "<span>Filter all:</span> _INPUT_",
        "sLengthMenu": "<span>Show entries:</span> _MENU_",
        "oPaginate": { "sFirst": "First", "sLast": "Last", "sNext": ">", "sPrevious": "<" }
    }
     });

     $(".dataTables_wrapper tfoot input").keyup( function () {
          oTable.fnFilter( this.value, $(".dataTables_wrapper tfoot input").index(this) );
      });

     (function newjobs() {
     var t = $('.datatable-add-row table').dataTable();
         var inputjob = $.ajax({
    type: "POST",
            url: "create_new_job.php",
    cache:false,
    success: function(data) {
        $('#invisible_button').on( 'click', function () {
            t.row.add( [
            data[0],
            data[1],
            data[2],
            data[3],
            data[4],
            data[6],
            data[7],
            data[8]
            ] ).draw();
        } );
        $('#invisible_button').click();
    }
});

    inputjob.done(function(data) {
        setTimeout(newjobs, 10000);
});

    inputjob.fail(function(data) {
        alert('Job not added....');
    });
   })();

</script>

最佳答案

对此进行调试,我们来看它告诉您“ add”不是“ undefined”属性的事实。这意味着“行”是t的未定义成员。这就告诉我们t是某物[或者它会以说'row'不是undefined的属性开始]。

因此,这告诉我t是某种东西,而不仅仅是您期望的数据表对象。

查看您包括在帖子中的示例链接,我看到正在使用“ .DataTable()”。 JavaScript中的对象和属性区分大小写,因此“ .dataTable()”与“ .DataTable()”不同。

更改大小写,看看是否可以解决您的问题。

关于javascript - 使用AJAX调用中的php更新DataTable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23437102/

10-12 12:51
查看更多