DataTables警告:table id = example - 无效的JSON响应。我没有来自服务器

时间:2016-09-04 01:33:23

标签: server datatables-1.10

我正在尝试让DataTables.js (Server-side Processing)为我的自定义CMS工作,遗憾的是,默认的服务器端脚本没有返回任何结果。

enter image description here

当然,我已将数据库凭据输入其中,并在我的数据库中选择了现有的表。

我的apache日志中没有错误。

DataTables.js论坛中的这个人有完全相同的问题:

https://datatables.net/forums/discussion/27049/datatables-warning-table-id-example-invalid-json-response-but-no-response-with-server-side-exampl

但显然他通过在服务器中安装PDO解决了这个问题。我验证了,我的服务器已经安装了PDO。

有什么想法吗?

修改

根据要求,这是我正在使用的代码。实际上它与那里的例子完全相同:https://datatables.net/examples/server_side/simple.html

HTML

<table id="example" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>First name</th>
            <th>Last name</th>
            <th>Position</th>
            <th>Office</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <th>First name</th>
            <th>Last name</th>
            <th>Position</th>
            <th>Office</th>
        </tr>
    </tfoot>
</table>

的JavaScript

$('#example').DataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": "/server_processing.php"
} );

PHP

<?php

/*
 * DataTables example server-side processing script.
 *
 * Please note that this script is intentionally extremely simply to show how
 * server-side processing can be implemented, and probably shouldn't be used as
 * the basis for a large complex system. It is suitable for simple use cases as
 * for learning.
 *
 * See http://datatables.net/usage/server-side for full details on the server-
 * side processing requirements of DataTables.
 *
 * @license MIT - http://datatables.net/license_mit
 */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Easy set variables
 */

// DB table to use
$table = 'node';

// Table's primary key
$primaryKey = 'nid';

// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
    array( 'db' => 'nid', 'dt' => 0 ),
    array( 'db' => 'type',  'dt' => 1 ),
    array( 'db' => 'language',   'dt' => 2 ),
    array( 'db' => 'title',     'dt' => 3 ),
);

// SQL server connection information
$sql_details = array(
    'user' => '******',
    'pass' => '******',
    'db'   => '******',
    'host' => '******'
);


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */

require( 'ssp.class.php' );

echo json_encode(
    SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);

以下是我服务器中示例脚本的链接:

http://tests.krown.ch/examples/server_side/simple.html

修改2

我的服务器正在使用PDO:

enter image description here

我还查看了class_exists('PDO')

凭据很好,因为如果我更改它们,我会收到一些其他错误,告诉我凭据不好或找不到数据库。

我正在测试的数据库中的表是:

enter image description here

1 个答案:

答案 0 :(得分:0)

看起来问题是你没有文件 COL_NAME 0 set(['xyz']) 1 set(['xyz']) 2 set(['mnq']) 。您必须使用此文件才能使服务器端处理正常工作。你可以从GIThub here获得它。

您可能需要根据所连接的内容对其进行修改,但根据您的问题,它可能会按原样运行。