Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何允许使用数据表删除ajax服务器端记录_Jquery_Ruby On Rails_Ajax_Coffeescript_Datatables - Fatal编程技术网

Jquery 如何允许使用数据表删除ajax服务器端记录

Jquery 如何允许使用数据表删除ajax服务器端记录,jquery,ruby-on-rails,ajax,coffeescript,datatables,Jquery,Ruby On Rails,Ajax,Coffeescript,Datatables,我正在使用datatables为我的用户数据建模,并希望在用户单击名为“Delete Restaurant”的按钮从视图中删除记录的同时,允许删除数据库中的记录。从datatables站点,删除操作只会隐藏用户的记录,而不是实际删除datacase中的任何内容: 如何在locations.js.coffee中调用ajax从数据库中删除所选的表记录? manage.html.erb,用于选择位置然后将其删除的表(在“位置”视图中): 要删除多行,首先需要确定创建正确的db查询需要哪些特定数据 下面

我正在使用datatables为我的用户数据建模,并希望在用户单击名为“Delete Restaurant”的按钮从视图中删除记录的同时,允许删除数据库中的记录。从datatables站点,删除操作只会隐藏用户的记录,而不是实际删除datacase中的任何内容:

如何在locations.js.coffee中调用ajax从数据库中删除所选的表记录?

manage.html.erb,用于选择位置然后将其删除的表(在“位置”视图中):


要删除多行,首先需要确定创建正确的db查询需要哪些特定数据

下面假设
store\u number
现在就足够了,它将从单元格文本中提取。您可以使用datatables呈现方法进行更多自定义,例如使用
data-
属性

循环浏览所有选定的
类,并对每个类提出请求,然后删除该行

$('#deleteRestaurant').click(function () {
    $('tr.selected').each(function () {
        var $row = $(this);
        var store = $row.find('td:first').text();
        $.post('path/to/server', {store_id: store}, function (response) {
            if ( /* validation of response*/ ) {
                table.row($row).remove();
            }
        });
    });

    table.draw();
});

如果您的后端代码需要一个更具体的标识符,您可以将其放在隐藏列中

删除按钮没有显示事件处理代码,因此显示的错误来自不同的代码,而不是发布的代码。该错误分散了我手上问题的注意力,我将其删除。如何设置ajax以删除datatables select选择的记录?您发布的内容是我已经拥有的,但您在javascript中拥有它。您的代码只是
。从表中删除
行,对基础数据不做任何操作。我需要的是包含
$.ajax
语法的方法,以便从数据库中删除记录,而不是简单地从表中“删除”或隐藏记录。因此,您需要以与在url定义的端点中执行表单相同的方式接收发布的数据,对其进行处理以执行删除,并返回一些内容以在客户端中进行验证。如果你想要服务器代码,我不知道你为什么在问题中发布所有客户端代码。我用我正在尝试的方法更新了问题,但还没有开始工作。我正在调用$.ajax,但无法使删除生效。您需要有一些标识符来确定要删除的内容。如果没有成功验证,请不要从服务器中删除该行。在我的代码中,它是
表。行(“.selected”)
要选择要删除的内容,如何将其追溯到该记录项数据库中的特定id?
table = $("#restaurantLocations").DataTable()

  $("#deleteRestaurant").click ->
    table.row(".selected").remove().draw false
    $.ajax({
      url: "/uploadlocations/",
      type: "post",
      dataType: "json",
      data: {"_method":"delete"}
    });

    return

  return
$('#deleteRestaurant').click(function () {
    $('tr.selected').each(function () {
        var $row = $(this);
        var store = $row.find('td:first').text();
        $.post('path/to/server', {store_id: store}, function (response) {
            if ( /* validation of response*/ ) {
                table.row($row).remove();
            }
        });
    });

    table.draw();
});