【发布时间】:2018-04-15 18:02:50
【问题描述】:
所以我正在做仪表板项目,并使用 dataTables 获取供应商表,并从 API 获取数据到表,API 将提供 json 数据,但我有点困惑,因为这是我第一次用 api 数据填充表,通常我从本地数据库中获取数据,并且因为 sql fetching 有很多参考
这是示例 API Json 数据:
{"produkList":[{"product_code":"XXXXX","ticket":"UD","numbers":"1200","price": 20,"verification":true},{"produk_code":"XXXXXX","ticket":"UD","numbers":"4000","price":120,"verification":false}]}
数据表js(视图):
table = $('#table').DataTable({
"processing": true, //Feature control the processing indicator.
"serverSide": true, //Feature control DataTables' server-side processing mode.
"order": [], //Initial no order.
// Load data for the table's content from an Ajax source
"ajax": {
"url": "<?php echo site_url('dashboard/ajax_list')?>",
"type": "POST"
},
//Set column definition initialisation properties.
"columnDefs": [
{
"targets": [ -1 ], //last column
"orderable": false, //set not orderable
},
],
});
和控制器(Dashboard.php)
public function ajax_list()
{
$curl = curl_init("http://example.com/dashboard/APIget.php");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS);
$result = curl_exec($curl);
curl_close($curl);
echo json_encode($result);
}
对于模型,我仍然没有概念,因为我只知道从本地数据库中获取,而且我知道我可以从 API 获取数据而无需服务器端处理,但结果是数据越大, 网站加载时间会很长,所以有人知道怎么做吗?
【问题讨论】:
-
当您从 API 获取 JSON 格式的数据时,我认为您应该解码。试试这个
var_dump(json_decode($result, true));php.net/manual/en/function.json-decode.php -
感谢@SureshPokharel 的快速响应,但是数据表的其他功能,如搜索、分页等,会自动加载吗?
-
数据量大,时间长。要首先获取小数据并稍后加载它们,您必须在 API 中进行更改。如果您使用第三方的 API,则必须对此进行一些规定。也许您需要查看他们的文档。
-
问题来了,我拿到的API不在我的范围内,是其他厂商的API,有没有其他办法?
标签: php json codeigniter datatable