【问题标题】:Set DataSource For jQuery DataTable to PHP JSON Encoded Array将 jQuery DataTable 的 DataSource 设置为 PHP JSON 编码数组
【发布时间】:2019-07-29 01:52:00
【问题描述】:

我正在使用下面的代码来查询 MySql 并将结果返回到一个数组中。我已经用 for each 循环验证了我的结果符合预期。

我这个过程的最后一步是将这个 php 数组设置为 jQuery 数据表的数据源?我有以下代码,但从未创建过我的 DataTable。

我错过了什么?

<table id="example" class="display" width="100%"></table>

<?php
$con=mysqli_connect("site", "user", "psasswr=ord", "db");

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT * FROM test LIMIT 10";
$result = mysqli_query($con,$sql);

$data = [];

foreach ($result as $row) {
   $data[] = $row;
}

mysqli_free_result($result);

mysqli_close($con);
?>

<script>
var dataSet = <?php echo json_encode($result); ?>;
$(document).ready(function() {
    $('#example').DataTable( {
        data: dataSet,
        columns: [
            { title: "Name" },
            { title: "Title" },
            { title: "Office" },
            { title: "Salary" }
        ]
    } );
} );
</script>

编辑
根据要求,如果我执行echo json_encode($data)

,这就是我的 JSON 的样子
[{"Salesman":"Harris Teeter","Title":"Manager","Office":"Home","Salary":"0.000000"}]

【问题讨论】:

  • 你能分享你 PHP 的输出 json 吗?
  • 注意DataTables有自己的json格式,你要符合它
  • @atymic - 查看我的编辑。它包括请求的信息

标签: php jquery datatables


【解决方案1】:

首先,您需要在 datatable 函数中使用 data 而不是 title

$('#example').DataTable( {
    data: dataSet,
    columns: [
        { data: "Name" },
        { data: "Title" },
        { data: "Office" },
        { data: "Salary" }
    ]
} );

其次,你需要像下面这样修改你的 JSON:

[{"Name":"Harris Teeter","Title":"Manager","Office":"Home","Salary":"0.000000"}]

这里正在运行 JSFiddle:link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多