在使用AJAX初始化数据表后使用.row.add()

时间:2015-10-12 16:52:22

标签: jquery ajax laravel datatable datatables

我用ajax初始化了一个数据表,现在当我尝试添加一行时,我什么都没得到。

在控制台中输入add new row命令我收到以下错误:

  

“未捕获的TypeError:无法读取未定义的属性'add'       时间:2:10       at Object.InjectedScript._evaluateOn(:904:140)       at Object.InjectedScript._evaluateAndWrap(:837:34)       at Object.InjectedScript.evaluate(:693:21)“

{{1}}

目前,一旦我触发了row.add()函数,它会更新表但重绘它没有新行吗?关于我做错了什么的暗示?

非常感谢!

1 个答案:

答案 0 :(得分:5)

您需要使用与row.add()相同的结构作为表结构。

来自manual

  

如果使用数据结构(即数组或对象),则它必须与表中的其他数据具有相同的格式(即,如果表使用对象,则在此处传入具有相同属性的对象!)。< / p>

例如:

 table.row.add( {
    'last_name': last,
    'first_name': first,
    'email': email,
    'phone': ''
 } ).draw();

您还使用服务器端处理模式serverSide: truedraw()导致脚本再次从服务器检索数据。由于您的记录不在服务器上,因此DataTables仅检索服务器上可用的记录,并忽略新添加的记录。

在这种情况下,最好的办法是在服务器上添加记录,然后使用draw()ajax.reload() API方法。