为了账号安全,请及时绑定邮箱和手机立即绑定

为数据表中的第 0 行第 0 列 ajax 请求了未知参数“名称”

为数据表中的第 0 行第 0 列 ajax 请求了未知参数“名称”

PHP
翻过高山走不出你 2021-10-15 15:36:53
我无法使用 Ajax 显示数据,出现错误:为第 0 行、第 0 列请求未知参数“名称”HTML<table id="datatable">    <thead>        <tr>            <td>Name</td>            <td>Surname</td>        </tr>    </thead></table>PHPheader('Content-Type: application/json; charset=utf-8');$columns = '{"data": [';$columns .= '{"name": "1234567890", "surname": "test"}, ';$columns .= '{"name": "8200469963", "surname": "amit"}';$columns .= ']}';die(json_encode($columns));JavaScript$(document).ready(function() {    $('#datatable').DataTable({        "responsive": true,        "processing" : true ,        "serverSide" : true ,        "ajax": {            type: 'POST',            url: "data.php",            dataType: 'json',            dataSrc: ""        },        "columns": [            { "data": "name" },            { "data": "surname" }        ]    });});
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

您的代码有几个问题:

  • 无效的数据表初始化设置serverSide: truedataSrc: ""您的响应结构。

  • PHP 脚本两次编码为 JSON。

使用以下 PHP 脚本作为模板:

<?php


header('Content-Type: application/json; charset=utf-8');


$data = [

   'data' => [

      [

         'name' => '1234567890',

         'surname' => 'test'

      ],

      [

         'name' => '8200469963',

         'surname' => 'amit'

      ],

   ]

];


echo json_encode($data);

使用以下初始化选项:


$(document).ready(function() {

    $('#datatable').DataTable({

        "responsive": true,

        "ajax": {

            type: "POST",

            url: "data.php"

        },

        "columns": [

            { "data": "name" },

            { "data": "surname" }

        ]

    });

});


查看完整回答
反对 回复 2021-10-15
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您的 PHP 代码有两个问题:


您的$columns变量是一个字符串,您试图将其编码为 JSON - 这根本不会产生您所期望的。您应该将其创建为对象,然后进行编码:


$columns = ["data" => [

    ["name" => "1234567890", "surname" => "test"],

    ["name" => "8200469963", "surname" => "amit"]

]];

不要使用die- 这可能会对服务器端造成不良影响。使用echo来代替:


echo json_encode($columns);

因此,总的来说,您的 PHP 代码将是:


header('Content-Type: application/json; charset=utf-8');


$columns = ["data" => [

    ["name" => "1234567890", "surname" => "test"],

    ["name" => "8200469963", "surname" => "amit"]

]];


echo json_encode($columns);


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信