【问题标题】:jQuery Datatable with PHP json_encode带有 PHP json_encode 的 jQuery 数据表
【发布时间】:2015-03-15 16:13:11
【问题描述】:

我尝试将数据库表数据解析为动态变化的 jquery 数据表。我在 php 的 json_encode 函数之后得到了以下输出

$sql = "SELECT * FROM login";

$result = mysql_query($sql);
$a= array();
while ($row = mysql_fetch_assoc($result)) {
$a[][] = $row;
    }

    echo (json_encode($a));

Json 输出

[[{"id":"1","username":"test11","password":"$2y$10$NiKnEN\/ww8yGVhv3JNjSuO5FfOFSthadS2B3GcbA3KGBktAOSu6lK","role":"Administrator "}],[{"id":"2","username":"test","password":"test","role":"test"}]]

然后我按照他们所说的调用jquery数据表ajax函数。这是我的编码

 $('#example').dataTable( {
        "ajax": 'ab.php'
    } );

但最终在 jquery 数据表tbody 部分中只显示“正在加载...”文本。这是为什么呢?

【问题讨论】:

  • 那是什么问题?
  • jquery 数据表没有从 php 文件中获取数据
  • 您在浏览器的控制台中遇到什么控制台错误?
  • " TypeError: f is undefined " @jQuery.PHP.Magento.com

标签: jquery json jquery-datatables jquery-datatables-editor


【解决方案1】:

原因

显然您使用的是 DataTables 1.10 版。默认情况下,此版本需要特定格式的数据,请参阅DataTables documentation 了解更多信息。

{
    "data": [
        // row 1 data source,
        // row 2 data source,
        // etc
    ]
}

解决方案

在您的 PHP 中将 $a[][] = $row; 更改为 $a['data'][] = $row 以生成正确格式的数据。

【讨论】:

    【解决方案2】:

    如果您使用 datatable 1.10 api,您需要创建一个 json 响应,例如:

    $json_data = array(
        "draw"            => intval( $_REQUEST['draw'] ),
        "recordsTotal"    => intval( $totaldata ),
        "recordsFiltered" => intval( $totalfiltered ),
        "data"            => $data
    );
    echo json_encode($json_data);
    
    • draw:我们发送与数据表在 绘制/请求。

    • recordsTotal:表中的记录总数。

    • recordsFiltered:搜索后过滤的记录总数 你的桌子。如果您不执行任何搜索,则 recordsFiltered 将与 recordsTotal 相同。

    • 数据:您获取的记录数据。您必须按照 开始、长度、搜索值、列名和排序顺序 参数。你可以从这里下载虚拟数据库表

    请参考link了解详情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2017-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多