【问题标题】:dataTable refresh on ajax successajax成功时数据表刷新
【发布时间】:2012-06-28 00:14:21
【问题描述】:

我有来自 jquery 插件 dataTables (http://datatables.net/) 的数据表,我想在 ajax 成功后刷新它。我尝试了以下代码,但它不起作用。任何帮助将不胜感激

$(document).ready(function() {
    oTable = $('#mytable').dataTable();
    var fa = 0;
    $('#submit tbody td ').click(function() {
    var gCard = $('#mytable tbody').delegate("tr", "click", rowClick);


    });
    function rowClick() {
        fa = this;
        var id  = $("td:eq(1)", this).text();
        cardNumber = $.trim(id);    
        $.ajax({
            url : 'myurltopostto',
            type : 'POST',
            data : {
                id  :   id

            },
            success : function(data) {
                oTable.fnDraw(); //wanted to update here
            },
            error : function() {
                console.log('error');
            }
        });
    }

});

【问题讨论】:

  • 不确定你的意思,但是我点击提交按钮后,我希望表格显示表格中的最新数据
  • ajax成功返回数据了吗?如果是这样,它只是 html 行或完整的 html 表或完整的页面或 json 或?????无法猜测您的其他代码在做什么,或者只是将 id 发送到服务器在您的应用中做了什么
  • 你也有一个点击处理程序被委托在另一个点击处理程序中,不知道那里有什么逻辑,但它可能是一个问题
  • 只需发送一个 id 即可删除该记录。所以我希望刷新表格以便不显示行

标签: jquery-ui jquery jquery-selectors


【解决方案1】:

您可以使用:fnDeleteRow,它将负责在内部刷新表格 html 和数据,请在此处查看 API 详细信息:

http://datatables.net/ref

    oTable.fnDeleteRow( fa );

【讨论】:

  • 唯一的问题是,如果我进行分页,它不会带来视图中没有的其他记录。如果我一次查看 10 条记录,在第 9 条记录时它会卡住并且无法工作。
【解决方案2】:

你好亲爱的程序员...对不起...我的英语很糟糕但我可以帮助你...我的以下内容是:

    <script type="text/javascript">

        function Ajax()
        {
            var
                $http,
                $self = arguments.callee;

            if (window.XMLHttpRequest) {
                $http = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                try {
                    $http = new ActiveXObject('Msxml2.XMLHTTP');
                } catch(e) {
                    $http = new ActiveXObject('Microsoft.XMLHTTP');
                }
            }

            if ($http) {
                $http.onreadystatechange = function()
                {
                    if (/4|^complete$/.test($http.readyState)) {
                        document.getElementById('ReloadThis').innerHTML = $http.responseText;
                        setTimeout(function(){$self();}, 10000);
                        $( this ).hide( "slow" );
                    }
                };
                $http.open('GET', 'cls_Noticias/last_noticias.php', true);
                $http.send(null);
            }

        }

    </script>

</head>
<body>

    <script type="text/javascript">
        setTimeout(function() {Ajax();}, 10000);
    </script>

    <div id="ReloadThis">Espere a que la pagina se actualice!</div>

</body>

美好的生活!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多