【问题标题】:Jquery DataTables serverside SyntaxError: Unexpected token <Jquery DataTables 服务器端 SyntaxError: Unexpected token <
【发布时间】:2016-07-28 16:02:16
【问题描述】:

我是 JS 新手,正在尝试设置数据表服务器端。按照他们的文档here。我收到以下错误:

SyntaxError: Unexpected token

我尝试了许多来自不同论坛的查找和建议,但没有成功。如果有人可以提供帮助,我真的很感激。这是我的 JS:

$(document).ready(function() {
    var oTable = $('#dataTables-example').dataTable({
        "bServerSide": true,
        "bProcessing": true,
        "bJQueryUI": true,
        "sAjaxSource": "ajax.php",
        "fnServerData": function(sSource, aoData, fnCallback) {
            /* Add some data to send to the source, and send as 'POST' */
            aoData.push({
                "name": "min",
                "value": $('#min').val()
            });
            aoData.push({
                "name": "max",
                "value": $('#max').val()
            });
            $.ajax({
                "dataType": 'json',
                "type": "GET",
                "url": "ajax.php",
                "data": aoData,
                "success": fnCallback,
                "timeout": 15000, // optional if you want to handle timeouts (which you should)
                "error": handleAjaxError // this sets up jQuery to give me errors
            });
        }
    });
    $('#min').change(function() {
        oTable.fnFilter($(this).val(), 0);
    });
    $('#max').change(function() {
        oTable.fnFilter($(this).val(), 0);
    });
});

function handleAjaxError(xhr, textStatus, error) {
    if (textStatus === 'timeout') {
        alert('The server took too long to send the data.');
    } else {
        alert(error);
    }
}

目前在我的服务器端代码中,我还没有覆盖$Query$Where,所以在服务器端自定义过滤器,但我想这不会引发错误。

<?php
    $table = 'tbl_test';

    $columns = array(
        'DS',
        'PUR',
        'RegDate',
        'ACTDATE',
        'BUSINESS NAME', 
        'CITY'      
    );

    $sql_details = array(
        'user' => 'root',
        'pass' => '',
        'db'   => 'samarty',
        'host' => 'localhost'
    );

    require( 'ssp.class.php' );

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

编辑 1:Console.log

 jquery.dataTables.min.js:39 Uncaught TypeError: Cannot read property    'length' of undefinedvb @ jquery.dataTables.min.js:39

 (anonymous function) @ jquery.dataTables.min.js:37i @ jquery.dataTables.min.js:35j @ jquery.js:3094k.fireWith @ jquery.js:3206x @ jquery.js:8259(anonymous function) @ jquery.js:8600        

【问题讨论】:

  • 该错误意味着您的 ajax.php 文件返回的是 HTML 而不是 JSON,很可能是由于 404 或 500 错误。检查控制台中的请求以查看确切的响应。
  • 谢谢@RoryMcCrossan,它向我展示了所有错误:)
  • @RoryMcCrossan,你能帮我解决这个错误吗?我已经用控制台日志更新了我的问题。也请把您的上述评论作为答案,以便我接受。再次感谢。

标签: javascript jquery datatable datatables server-side


【解决方案1】:

数据表服务器端脚本需要$primary_key。我在你的代码中看不到。

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 2016-04-06
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2015-02-23
    相关资源
    最近更新 更多