这里有一个简单的问题,但我是数据表的新手,请原谅我的无知:我有一个查询我放在一个数组中的行然后用JSON格式编码,如何将这个数组发送到数据表以便填充每一行?我看过其他线程,但他们使用ajax从外部引用脚本,而我的位于同一页面(不确定是否有所不同)。我的脚本看起来像这样:
<?php
if(isset($_POST['post_id'])){
$in = $_POST['post_id'];
}
$data = array();
foreach ($in as $id){
$query = $link->prepare("SELECT provider_num, provider_name, 233_net_charity_care, 291_cost_of_non_mcr_bad_debts, 301_cost_of_uncomp_care
FROM `s10`
WHERE `id` = :id");
$query->bindParam(':id', $id, PDO::PARAM_INT);
$query->execute();
$results = $query->fetch(PDO::FETCH_ASSOC);
$data[] = $results;
}
json_encode($data);
?>
其中post_id是从上一个表单提交到页面的初始id值数组,为简单起见,我可以说这次只提交了一行。
JSON输出如下所示
[{"provider_num":"140124","provider_name":"JOHN H. STROGER JR. HOSP OF COOK CTY","233_net_charity_care":"163307737","291_cost_of_non_mcr_bad_debts":"181677291","301_cost_of_uncomp_care":"344985028"}]
然后以什么方式初始化数据表以接收此数据
到目前为止,我有:
$(document).ready(function() {
$('#example').dataTable( {
"ajax": "", <== What goes here?
"columns": [
{ "data": "provider_num" },
{ "data": "provider_name" },
{ "data": "233_net_charity_care" },
{ "data": "291_cost_of_non_mcr_bad_debts" },
{ "data": "301_cost_of_uncomp_care" }
]
} );
} );
任何见解都会很棒,我对jquery一般都很陌生,所以如果这是一个简单的问题就道歉。我试图阅读文档,但遇到了麻烦。
提前致谢
答案 0 :(得分:1)
首先,如果你的前端脚本和服务器脚本(php)在同一页面中,你就不需要使用ajax。
你可以在php脚本
之后简单地设置这样的数据var tableData = <?php echo json_encode($data); ?>;
然后在datatable initialize方法中,使用此
$(document).ready(function() {
$('#example').dataTable({
"aaData": tableData,
"aoColumns": [
{ "data": "provider_num" },
{ "data": "provider_name" },
{ "data": "233_net_charity_care" },
{ "data": "291_cost_of_non_mcr_bad_debts" },
{ "data": "301_cost_of_uncomp_care" }
]
});
});