2017-03-31 72 views
0

我想通过服务器的ajax在DataTable中显示数据。下面是我有:无法通过ajax从服务器在DataTable中显示数据

# server 
    # .... 
    return jsonify({"data": {1: (123, "something1", 333), 2: (456, "something2", 555)}}) 

和模板:

<script> 
    $("#my_table").DataTable({ 
     ajax: "/my_url.json", 
     processing: true, 
     serverSide: true, 
     columns: [ 
     {data: "id" }, 
     {data: "column2"}, 
     {data: "column3"} 
     ] 
    }); 
    </script> 

和一张桌子:

<table id="my_table"> 
    <thead> 
    ...... 

出于某种原因,没有任何反应。完全一样。对服务器的ajax请求都没有。也没有错误。 js和css文件已包含在模板中。

当我在浏览器中访问“/my_url.json”时,它返回json。

如何解决?

回答

0

您需要调整您的服务器端脚本一些,因为数据表预计该数据将在这种形式:

{ 
    "data": [ 
     { 
      "id": 123, 
      "column2": "something1", 
      "column3": 333 
     },{ 
      "id": 456, 
      "column2": "something2", 
      "column3": 555 
     } 
    ] 
} 

我敢肯定,你的数据不会在那种的格式,虽然做得很好,为时钟的需要data

我对Python没有兴趣,所以我不确定如何去改变你的服务器端脚本,对不起。你可以在DataTable中处理它,但它可能更好地做服务器端,希望有帮助。

+1

实际上,'数据'并不是完全必要的。我可以使用['ajax.dataSrc'](https://datatables.net/reference/option/ajax.dataSrc)选项 – Sebastianb

+1

指定包含数据的关键字,但我知道这是因为我正在写回应数据'被添加并且它是必需的,除非你想添加'dataSrc'并因此把'ajax'改为一个对象而不仅仅是一个URI。但我应该提到,你是对的。 – annoyingmouse

相关问题