如何将php json_encode值正确传递给使用DataTables插件的表?
我正在从事一个使用支付网关的项目,我想以JSON格式将支付API中的值显示到一个使用JSON格式的表中。首先,我发现了一些与我的怀疑有关的类似问题,但不幸的是,我很难找到正确的方法来解决这个问题 我使用的php Curl脚本调用URL API并以JSON格式获取结果: all_payments.php如何将php json_encode值正确传递给使用DataTables插件的表?,php,json,datatables,Php,Json,Datatables,我正在从事一个使用支付网关的项目,我想以JSON格式将支付API中的值显示到一个使用JSON格式的表中。首先,我发现了一些与我的怀疑有关的类似问题,但不幸的是,我很难找到正确的方法来解决这个问题 我使用的php Curl脚本调用URL API并以JSON格式获取结果: all_payments.php 下面是执行上述Curl脚本时JSON格式的API结果: { “结果”:[ { “元数据”:{}, “公司id”:空, “操作类型”:“定期付款”, “费用详情”:[], “通知url
下面是执行上述Curl脚本时JSON格式的API结果:
{
“结果”:[
{
“元数据”:{},
“公司id”:空,
“操作类型”:“定期付款”,
“费用详情”:[],
“通知url”:空,
“批准日期”:空,
“货币释放模式”:null,
“付款人”:{
“名字”:“测试”,
“姓氏”:“测试”,
“电子邮件”:“测试用户”_80534729@test.com",
“识别”:{
“编号”:“34579430”,
“类型”:“DNI”
},
“电话”:{
“区号”:“01”,
“编号”:“1111-1111”,
“扩展”:”
},
“类型”:“已注册”,
“实体类型”:空,
“id”:“660948681”
},
“交易详情”:{
“支付总额”:10,
“收单机构参考”:空,
“分期付款金额”:0,
“金融机构”:“,
“收到的净额”:0,
“多付金额”:0,
“应付账款递延期”:空,
“付款方式参考id”:“1848987916”,
“验证代码”:“1343987916”
},
“语句描述符”:null,
“为授权id调用”:空,
“分期付款”:1,
“pos_id”:空,
“外部_引用”:空,
“到期日期”:“2020-10-20T22:59:59.000-04:00”,
“费用详情”:[],
“id”:1453987916,
“付款类型\ id”:“票据”,
“条形码”:{
“内容”:“23791841402309310003380250122998791600633330”
},
“命令”:{
“id”:“1820096336”,
“类型”:“mercadopago”
},
“计数器货币”:空,
“品牌标识”:空,
“状态详情”:“待付款”,
“差异定价id”:空,
“附加信息”:{
“ip地址”:“123.456.678.890”,
“nsu_processadora”:空,
“可用余额”:空
},
“现场模式”:错误,
“市场所有者”:空,
“卡片”:{},
“积分器id”:空,
“状态”:“待定”,
“交易金额退款”:0,
“交易金额”:10,
“说明”:“简短”,
“货币发放日期”:空,
“商户编号”:空,
“退款”:[],
“授权代码”:空,
“被俘”:没错,
“收款人id”:58546234946,
“商户账户id”:空,
“税费金额”:0,
“上次更新日期”:“2020-10-17T11:30:31.000-04:00”,
“息票金额”:0,
“存储id”:空,
“创建日期”:“2020-10-17T11:30:31.000-04:00”,
“收单机构对账”:[],
“赞助商id”:空,
“装运金额”:0,
“发卡机构id”:空,
“付款方式\ id”:“票据”,
“二进制_模式”:false,
“平台id”:空,
“演绎模式”:空,
“处理模式”:“聚合器”,
“货币id”:“美国”,
“运输成本”:0
}
]
}
基于上面的JSON结果,我尝试将一些JSON对象传递到使用Datatables插件的表中。下面是显示带有Datatable插件的表的html和javascript代码:
身份证件
创建日期
电子邮件
已付总额
地位
$(文档).ready(函数(){
$('#示例')。数据表({
“ajax”:{
“url”:“all_payments.php”,
“dataSrc”:“结果”
},
“栏目”:[
{“数据”:“id”},
{“数据”:“创建日期”},
{“数据”:“电子邮件”},
{“数据”:“支付总额”},
{“数据”:“状态”}
]
});
});
重新加载带有Datatable的页面时,浏览器控制台上出现错误:
Uncaught TypeError: Cannot read property 'length' of undefined
at jquery.dataTables.min.js:65
at h (jquery.dataTables.min.js:52)
at Object.success (jquery.dataTables.min.js:52)
at c (jquery-3.5.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.5.1.min.js:2)
at l (jquery-3.5.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.5.1.min.js:2)
到
$decode=json\u decode($data,true);
foreach($将[“结果”]解码为$value){
echo$value[“id”];
echo$value[“创建日期”];
echo$value[“电子邮件”];
echo$值[“支付总额”];
echo$值[“状态”];
}
但它不起作用。我找到了解决办法。我编辑了all_payments.php脚本,如下所示:
在foreach上,脚本获取对象值,然后输出将json值传递给Datatables的结果,如下代码所示:
身份证件
创建日期
电子邮件
全部的
$(文档).ready(函数(){
$('#示例')。数据表({
“ajax”:“all_payments.php”,
“栏目”:[
{“数据”:“id”},
{“数据”:“创建日期”},
{“数据”:“电子邮件”},
{“数据”:“支付总额”,
呈现:$.fn.dataTable.r