Json对象转换为Datatable

时间:2014-05-28 12:05:49

标签: javascript jquery json datatables

使用服务器调用我的Web应用程序的用户正在创建一个json对象d。该对象包含许多键(考虑" Mean"," Stdev"等)。用户正在更改网页上的基础时间序列。

    <script type="text/javascript">
        function myFunction(d) {
            $('#myid').html(d["Mean"])
        }
    </script>

执行jquery $ .POST,如果成功则返回json对象并调用上面的方法。 上述方案已经有效。此更新

    <div class="container-fluid">
        <div class="row-fluid">
            <div id="myid">some value</div>
        </div>
    </div>

但是,我真的想更新一个完整的数据表(如http://datatables.net/examples/advanced_init/中的数据表)。

在运行时我不知道d中的键是什么。 datatables.js是否是表中动态数据的正确工具?

2 个答案:

答案 0 :(得分:0)

是的,这就是dataTables.js的用途。 虽然目前尚不清楚您对datatabletabledataTable的具体含义。

dataTable.js负责显示(呈现)页面上的结构,具有许多功能(如排序,搜索,过滤,分页,编辑等),否则很难实现。它不是一种可以帮助您在数据库的表(或数据表)中维护字段的工具。 (但它可以)

dataTable.js使用服务器端代码和一些巧妙的帮助函数来帮助您通过PHP使用mySql数据库。但它不依赖于这个例子。您可以使用任何服务器代码和任何数据库,只要它理解从dataTables.js发送的查询并重新生成dataTables.js期望的json数据。

对于复杂(DB)表操作,您需要编写自己的服务器端代码。

关于你的问题,我想你应该看一下dataTables.js附带的服务器示例。

要在实际页面上获取单元格或行值的单个值,用户会看到您应该查看列呈现示例。

不要将此视为答案,只是为了评论而冗长。请准备好使用dataTables.js与您问题的工作代码不同。

答案 1 :(得分:0)

这是代码的一个片段。它现在实际上有效。但是,我发现这个概念(删除内容并逐行添加)超级狡猾:

<div class="col-md-3">
                <table id="example" class="display" cellspacing="0" width="100%">
                    <thead>
                        <tr>
                            <th></th>
                            <th>Value</th>
                        </tr>
                    </thead>
                </table>
            </div>



            <script type=text/javascript>
                $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};

                $TABLE = $('#example').DataTable({
                                "info": false,
                                "bPaginate": false,
                                "paging": false,
                                "bScrollCollapse": false,
                                "search": false,
                                "sort": false,
                                "filter": false}

                );

            </script>

            <script type="text/javascript">
                function myFunction(d)
                {
                    console.log("Refill table");
                    console.log(d);
                    $TABLE.clear();
                    for (var key in d) {
                        $TABLE.row.add([key, d[key]]);
                    }
                    $TABLE.draw();
                }
            </script>

请注意,我没有包含用于计算d的代码(在服务器上使用$ .ajax POST调用完成。