通过Ajax加载内容后,Bootstrap Datatable不再起作用
在有人说它是一个重复的问题之前,我知道它是。 我只是没能找到任何看起来与我类似的脚本,因为我对JavaScript和JQuery(用于php)完全不熟悉我真的不知道我在做什么。
我的数据表完美地使用php加载数据(在页面加载之前),但现在它在页面加载后加载,表已经丢失了所有的过滤和分页。
这是我的表格加载方式。
这是获取数据并将其放入表中的脚本。
//call ajax var ajax = new XMLHttpRequest (); var method = "GET"; var url = "data_assets.php"; var asynchronous = true; setInterval(function(){ ajax.open(method, url, asynchronous); //sending ajax request ajax.send(); }, 250) //receiving response from data_assets.php ajax.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { //convert JSON back to array var data = JSON.parse(this.responseText); //console.log(data); //for debugging //html value for var html =""; //looping through the data for (var a = 0; a < data.length; a++) { var asset_number = data[a].asset_number; var id = data[a].id; var room = data[a].room; var _location = data[a]._location; var sku = data[a].sku; var qty = data[a].qty; var _value = data[a]._value; var date = data[a].date; var po_number = data[a].po_number; var purchaced_from = data[a].purchaced_from; var notes = data[a].notes; var total = data[a].total; //storing in html html += ""; html += "" + asset_number + " "; html += "" + id + " "; html += "" + room + " "; html += "" + _location + " "; html += "" + sku + " "; html += "" + qty + " "; html += "" + _value + " "; html += "" + total + " "; html += "" + date + " "; html += "" + po_number + " "; html += "" + purchaced_from + " "; html += "" + notes + " "; html += ""; html += ""; html += " "; html += ""; html += ""; html += " "; html += " "; } //replacing the document.getElementById("data").innerHTML = html; } }
如果有人能告诉我如何在我的例子中使用它,我将非常感激,我真的想在这个网站上加载所有我的表,所以我不需要刷新保存数据(这每刷新250ms所以表中的数据始终与数据库保持同步。
更新:
对,我拿出我的250ms刷新,现在桌子工作完美! 是谁能够帮我解决下一期的问题。 如何在将新数据输入数据库时刷新表,而不刷新整个页面
我建议用HTML或PHP(而不是Javascript)创建表结构。 然后使用ajax将数据加载到表中。 除非创建元素的事件绑定到已存在的元素(如body
或document
或表的某些其他父元素),否则这些DOM元素不可用于javascript。
更新:
我个人对DataTables插件没有多少经验。 因此,插件将根据从ajax返回的data
对象或您指定的属性自动创建DOM元素(表结构)。 DataTables确实使用jQuery的ajax()
方法来进行ajax调用,但是你不应该覆盖success
回调。 在进行文档中指定的ajax调用时,有一种正确的方法可以使用它们的API。 还有一种正确的方法可以在一个间隔上重新加载数据以刷新表。
请看看这个小提琴 。
当然,必须更新ajax url, method, data
属性以适合您的应用程序(这是在jsFiddle上模拟ajax调用的唯一方法。请注意,您必须具有格式正确的JSON。
您是否尝试在Datatables上显式设置pagelength属性?
$('#datatable').dataTable( { "pageLength": 50 } );
- 需要允许表单重新提交Rails AJAX
- 如何在自动调用的函数(如.ajax()的beforeSend())中正确使用jQuery Deferred / promise?
- 使用AJAX jQuery的Symfony 1.4。 如何改进包含取决于另一个选择框的选择框的AJAXfunction?
- 如何使用jQuery创建AJAX HTTPS GET请求
- 填充使用带有Json数据的Javascript / Jquery单击选择框选项
- Jquery Ajax调用WEB API
- jQuery嵌套$ .getJSON不起作用
- json_encode无法处理PDO获取的数据
- 使用jQuery AJAX将数组作为参数传递?
Interesting Posts
WordPress – 如何通过AJAX获取更多post?
无法加载资源:请求在Safari上超时
数据不在控制器方法 – MVC中
缺少变量值时Django Template中的Javascript语法错误
jQuery,JSON,PHP和gMap
如何在asp.net中使用jquery和json将数据保存到数据库中
如何在ajax post请求中传递模型?
使用Phonegap应用程序执行ajax请求时出现问题
Ajax调用没有调用服务器端,并且在httpxx中显示错误为“在ajax post调用中加载内容错误(NS_ERROR_DOCUMENT_NOT_CACHED)”
Ajax成功和错误function失败