jQuery的数据表插件不删除表行(jQuery Data Tables plugin not re

2019-09-16 18:08发布

我试图找出为什么当我点击我的删除按钮,它改变了执行的事情PHP端,但是当它到达返回给客户端它不会从表中删除的行。 我使用的DataTable我的表。

$('.delete').click(function() { 
    var titleID = $(this).attr('rel');
    $.post('titles/delete', { titleID:titleID }, function(data) {
        if (data.success)
        {
            var anSelected = fnGetSelected( oTable );
            oTable.fnDeleteRow( anSelected[0] );
        }
    });
});

从PHP侧的响应是这样的:

{"success":"Yes","message":"Title was deleted successfully!"}

编辑:

下面是我使用的是什么,现在和我收到说没有定义fnGetSelected一个有趣的错误消息。 所以我不知道如果我的“M即使这样做正确删除表行。

$('.delete').click(function() { 
var titleID = $(this).attr('rel');
$.post('titles/delete', { titleID:titleID }, function(data) {
    if (data.success)
    {
        var anSelected = fnGetSelected( oTable );
        oTable.fnDeleteRow( anSelected[0] );
    }
}, 'json');
});

Answer 1:

oTable是数据表的功能内发现了一个对象,并且在其内定义那里。 一旦函数运行其过程和渲染不管它会将变量被销毁它不是任何形式的全局变量。

$('.delete').click(function() { 
    var titleID = $(this).attr('rel');
    $.post('titles/delete', { titleID:titleID }, function(data) {
        if (data.success)
        {
            var anSelected = fnGetSelected( oTable );
            oTable.fnDeleteRow( anSelected[0] );
        }
    });
});

如果您的期待与$。员额的工作和数据回来,指定数据,你想回类型是个好主意

$('.delete').click(function() { 
    var titleID = $(this).attr('rel');
    $.post('titles/delete', { titleID:titleID }, function(data) {
        if (data.success)
        {
            var anSelected = fnGetSelected( oTable );
            oTable.fnDeleteRow( anSelected[0] );
        }
    }, 'json');
});

还值得一提的是,而不是试图与它的渲染后的DataTable对象的工作..你能和最有可能你的最简单的路线不同的地方你的“删除”按钮位于这样做

$(this).parent('tr').remove();

假设按钮/链接什么的,是同一行中要删除的一个..你可以做一些像上面提到的,因为这只是纯粹的讨论去除表列的视觉效果。 同时假设你的AJAX是改变下一次数据加载页面所以它不是在了设置,因此不会被包括在未来负载



Answer 2:

有与ü甲肝这里提供的代码多种问题...
通过你得到了POST请求的响应1.going。
你得到的“成功”财产我不认为“YES”值if在JavaScript将采取为true
2. fnGetSelected数据表的功能需要一个实例后..你不能只是调用该函数,就好像它是一个全球性..上班,所以如果ü甲肝存储在像varibale表refrence dTable那么在哪里把它作为dTable.fnGetSelected()
所以probabaly你应该改变这种

var anSelected = fnGetSelected( oTable );

var anSelected = oTable.fnGetSelected();


IM假设oTable有你的数据表
所以按F12调试打开开发者工具和控制台查找JavaScript错误或任何你已经根据乌拉圭回合的浏览器



文章来源: jQuery Data Tables plugin not removing table row