2

我找不到使用带有 jquery 的 $.ajax 函数在可动手做的表中插入数据的正确方法。是否有任何有用的教程或示例?

非常感谢!!


感谢您的示例,但我无法通过 json(使用 PHP::json_encode())将 PHP 数组推送到 handsontable。我试了很多次,最后还是不行。。。

例如:我得到了一些带有行的数组:

<?php
        $row1 = array(1=>"value1",
        2=>"value2",
        3=>"value3",
        4=>"value4",
        5=>"value5");

    $row2 = array(1=>"value1",
        2=>"value2",
        3=>"value3",
        4=>"value4",
        5=>"value5");

    $row3 = .......

所以我尝试了:

$data = array($row1,$row2,$row...);
echo json_encode($data);

但它根本不起作用......

谢谢您的帮助!

4

1 回答 1

7

下面的示例展示了如何使用 $.ajax 和 Handsontable 加载和保存数据:

var first = true;
$("#example6grid").handsontable({
  rows: 8,
  cols: 8,
  rowHeaders: true,
  colHeaders: true,
  minSpareCols: 1,
  minSpareRows: 1,
  contextMenu: true,
  onChange: function (change) {
    if (first) {
      first = false;
      return; //don't save this change
    }
    $.ajax({ //saves changes from Handsontable
      url: "save.php",
      dataType: "json",
      type: "POST",
      data: {"data": $("#example6grid").handsontable('getData')}, //returns full array of grid data
      //data: change, //contains only information about changed cells
      success: function (data) {
        console.log("saved", data);
      },
      error: function (data) {
        console.log("error", data);
      }
    });
  }
});

$.ajax({ //loads data to Handsontable
  url: 'source.json',
  dataType: 'json',
  type: 'GET',
  success: function(res){
    $("#example6grid").handsontable("loadData", res.data);
  }
});

上面的代码假定<div id="example6grid" class="dataTable"></div>存在,并且该文件source.json包含以下 JSON:

{
  "data": [
    ["", "Kia", "Nissan", "Toyota", "Honda"],
    ["2008", 10, 11, 12, 13],
    ["2009", 20, 11, 14, 13],
    ["2010", 30, 15, 12, 13]
  ]
}
于 2012-07-17T10:49:14.173 回答