javascript - Jquery - Bootstrap DataTable 刷新问题 DATA

标签 javascript json ajax twitter-bootstrap datatables

您能帮我解决与 Bootstrap - Jquery Table 相关的问题吗?

我想从数据库服务器以 JSON 格式(通过 ajax 调用)检索数据到 Bootstrap 数据表中,然后仅重新加载数据表。

这是代码,按下单击按钮(搜索)后将运行该代码:

var prova = null;

$(document).ready(function(){
        prova = $('#prova_table').DataTable({
            paging: true,
            searching: false
        });
        prendivalori();
       });  


function prendivalori() {
       $("#bottone").click(function() {
        $("#prova_table").empty();
        var sopravvissuti = $('#sopravvissuti').val();
        var vita = $('#vita').val();
        var provincia = $('#provincia').val();
        var campi = $('#campi').val();
        var table = $('#prova_table');

        $.ajax({
                type: 'GET',
                url: './php/select.php',
                data: {'sopravvissuti': sopravvissuti, 'vita': vita, 'provincia':provincia, 'campi':campi},
                dataType: 'json',
                success: function(data) {
                                    table.append("<thead><tr><th class='th-sm'>Cognome</th><th class='th-sm'>Nome</th><th class='th-sm'>Sesso</th></tr></thead>");
                                    console.log(data);
                                    len=data[0].length;
                                    table.append("<tbody>");
                        for(i=0; i< len; i++){

                            temp=data[0][i]
                            table.append("<tr><td>" + temp[1] + "</td><td>" + temp[0] + "</td><td>" 
                            + temp[2] +"</td></tr>");
                        }
                                                table.append("</tbody>");

                                                $('#prova_table').DataTable().ajax.reload();

                        }

                ,
                error: function(data) {
                        alert('Assicurarsi di aver selezionato tutte le caselle');

                }
        });

    });
};

这是点击按钮数据后收到的错误消息...

DataTables 警告:表 id=prova_table - 无效的 JSON 响应。有关此错误的更多信息,请参阅http://datatables.net/tn/1

从服务器接收到的 json 数据是正确的,因为我们可以在表中正确看到它们,但我们无法使用 Bootstrap DataTable 提供的所有功能,例如 分页 搜索条目数量....

我正在使用所有更新的链接来运行网站..

ETC ECT

这是一个 JSON 响应:

JSON Response

提前非常感谢您的支持 祝你今天过得愉快 安德里亚

最佳答案

您不应该对表执行 table.append() 和任何其他直接 dom 更改。 如果您以正确的方式向 Jquery 数据表传递选项,它将为您完成此操作。

这样做。

首先使用列名(如果可用)初始化数据表,如下所示

var table = $("#myTable").DataTable({
    data:[],
    columns: [
                { "data": "Cognome"  },
                { "data": "Nome" },
                { "data": "Sesso" },
                { "data": "data di nascita" }
    ],        
});

在单击按钮时,执行 get ajax 调用,并在完成回调中清除表 table.clear().draw();table.rows.add(result) .draw() 将数据渲染到表中。

    $.ajax({
            url: "https://www.mocky.io/v2/5e89289e3100005600d39c17",
            type: "get",
        }).done(function (result) {
            table.clear().draw();
            table.rows.add(result).draw();
         })

JSFiddle:https://jsfiddle.net/k0d1mzgL/

var table = $("#myTable").DataTable({
    data:[],
    columns: [
           { "data": "Cognome" ,"title": "Cognome"},
{ "data": "Nome" ,"title": "Nome"},
{ "data": "Sesso" ,"title": "Sesso"},
{ "data": "data di nascita","title": "data di nascita" }
    ],        
});
$("#getDataBtn").click(function(){
    $.ajax({
            url: "https://www.mocky.io/v2/5e89289e3100005600d39c17",
            type: "get",
        }).done(function (result) {
            table.clear().draw();
            table.rows.add(result).draw();
            }).fail(function (jqXHR, textStatus, errorThrown) { 
               //if failed
               console.log("Due to https issue,this request cant be made, go check jsfiddle link provided in answer");
            });
});
<link href="//cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet" >
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<table id="myTable">

</table>
<button id="getDataBtn">Get data</button>

关于javascript - Jquery - Bootstrap DataTable 刷新问题 DATA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036201/

相关文章:

javascript - scrapy中如何解析JSON数据

c# - Web API2 代理不重定向请求

javascript - Json 数组详细信息显示在带有 ionic 的 angularjs 中的三个页面中

json - 带有任意键的 json 的 golang 结构

jquery - 如何在声明 JSON formData 后添加更多键/值对

jquery - 循环内的异步性

javascript - php 中的 url 参数,并在 if 条件下将其写入 js 变量

javascript - jQuery : update css on one table column based on attribute of another column

javascript - Spring 无法获取keycloak授权 token

json - Redis:何时使用哈希与 RedisJSON?