Php 使用从AJAX请求返回的Db记录更新Datatable
我有一个非常基本的HTML表。数据来自数据库。我现在已经设置了一个带有按钮的日期选择器,只要我点击按钮,我就会发出一个AJAX请求,以获取特定日期的特定数据。为了简化,我的查询只是以id=1为例。现在我想返回数据abnd更新数据表,但不幸的是返回了数据,但没有显示Php 使用从AJAX请求返回的Db记录更新Datatable,php,jquery,datatables,Php,Jquery,Datatables,我有一个非常基本的HTML表。数据来自数据库。我现在已经设置了一个带有按钮的日期选择器,只要我点击按钮,我就会发出一个AJAX请求,以获取特定日期的特定数据。为了简化,我的查询只是以id=1为例。现在我想返回数据abnd更新数据表,但不幸的是返回了数据,但没有显示 data […] 0 {…} id 1 category_id 1 title Technology Post One 这就是返回的内容。我是否在上述格式中出错,或者如何更新数据表?我得到以下错误: Data
data […]
0 {…}
id 1
category_id 1
title Technology Post One
这就是返回的内容。我是否在上述格式中出错,或者如何更新数据表?我得到以下错误:
DataTables警告:表id=示例-为第0行第0列请求的未知参数“0”
您可以更新js脚本并为ajax调用创建一个新的php文件,该文件将返回新的数据表。试试这个代码,它会起作用的-
<script>
var created_at = '';
$(document).ready(function() {
var datatable = $('#example').DataTable({
'processing': true,
'scrollX': true,
'serverSide': true,
'serverMethod': 'post',
'searching' : true,
'ajax': {
url:'new-file.php',
data: function(data){
data.created_at = created_at;
}
},
"columns": [
{"data": "id"},
{"data": "author"},
{"data": "created_at"}
],
});
$( "#datepicker" ).datepicker();
$("button").click(function(e) {
e.preventDefault();
created_at = $("#datepicker").val();
datatable.draw();
});
} );
</script>
我真的不知道数据表,但看看代码,我可以看到一个潜在的问题。调用$'example'.DataTable.ajax.reload;当ajax请求完成,但您还没有将DataTable配置为实际执行任何操作或加载任何数据时?它应该装什么?您的ajax请求/响应和您的DataTable没有任何关系。我认为您是对的,我想我应该命名这些列,所以我更新了下面的内容。现在,当我使用查询id=1时,它就可以工作了,所以我执行了下一步,添加了from和to日期,但随后出现了下一个错误。我会更新上面的帖子。非常感谢你。我必须输入“服务器端”:false,它才能工作,并且必须实例化DataTable以在开始时可用,在单击按钮后,我销毁了它,然后再次实例化它。听起来怪怪的,但这一切都是在我的安排下进行的。非常感谢你的帮助!
<script>
var created_at = '';
$(document).ready(function() {
var datatable = $('#example').DataTable({
'processing': true,
'scrollX': true,
'serverSide': true,
'serverMethod': 'post',
'searching' : true,
'ajax': {
url:'new-file.php',
data: function(data){
data.created_at = created_at;
}
},
"columns": [
{"data": "id"},
{"data": "author"},
{"data": "created_at"}
],
});
$( "#datepicker" ).datepicker();
$("button").click(function(e) {
e.preventDefault();
created_at = $("#datepicker").val();
datatable.draw();
});
} );
</script>