Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将php json_encode值正确传递给使用DataTables插件的表?_Php_Json_Datatables - Fatal编程技术网

如何将php json_encode值正确传递给使用DataTables插件的表?

如何将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

我正在从事一个使用支付网关的项目,我想以JSON格式将支付API中的值显示到一个使用JSON格式的表中。首先,我发现了一些与我的怀疑有关的类似问题,但不幸的是,我很难找到正确的方法来解决这个问题

  • 我使用的php Curl脚本调用URL API并以JSON格式获取结果:

    all_payments.php

    
    
    下面是执行上述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