将过滤后的选定行放入数组中

问题描述 投票:0回答:1

我有以下方法可以获取选定的过滤制表行,但我没有从数组中获取任何数据,有人可以帮忙吗?

document.getElementById("get-selected-rows").addEventListener("click", function() {
  var rows = table.getRows("active");
  var selectedRows = rows.filter(function(row) {

    if (row.isSelected()) {
      var postData = jQuery.map(rows, function(row) {
        return {
          id: row.getData().id,
          FirtName: row.getData().FirtName,
          LastName: row.getData().LastName,
          Age: row.getData().Age,
          City: row.getData().City
        };
      });

      jQuery.ajax({
        url: 'save_rows.php',
        type: 'POST',
        data: JSON.stringify(postData),
        contentType: 'application/json',
        success: function(response) {},
        error: function(error) {}
      });
    }
  });
});

javascript tabulator
1个回答
0
投票

您不应该每次循环都进行 AJAX 调用。您应该将

rows
过滤到选定的行中,然后将其映射以获取选定项目的数组,并在最后在 AJAX 调用中发送一次。

document.getElementById("get-selected-rows").addEventListener("click", function() {
  var rows = table.getRows("active");
  var selectedRows = rows.filter(row => row.isSelected());
  var postData = selectedRows.map(function(row) {
    const data = row.getData();
    return {
      id: data.id,
      FirtName: data.FirtName,
      LastName: data.LastName,
      Age: data.Age,
      City: data.City
    }
  });

  jQuery.ajax({
    url: 'save_rows.php',
    type: 'POST',
    data: JSON.stringify(postData),
    contentType: 'application/json',
    success: function(response) {},
    error: function(error) {}
  });
});

© www.soinside.com 2019 - 2024. All rights reserved.