Handsontable — таблица не отображается

Я пытаюсь загрузить данные в handsontable.

HTML-файл очень прост:
просто таблица и кнопка для загрузки данных, отправленных PHP-скриптом (с именем actions.php):

<!doctype html>

<html>

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="dist/handsontable.full.js"></script>
<link rel="stylesheet" media="screen" href="dist/handsontable.full.css">
</head>

<body>

<div id="hot"></div>
<br />
<input id="try" type="button" value="Try" />

</body>

<script>
$(function() {
var objectData = [
{id: 1, name: 'Ted Right', address: ''},
{id: 2, name: 'Frank Honest', address: ''}];

$('#hot').handsontable({
data: objectData,
colHeaders: true,
minSpareRows: 1
});

var hot = $("#hot").handsontable('getInstance');

$("#try").click(function(){
$.getJSON("actions2.php", function(result){
console.log (objectData);
console.log (JSON.parse(result));
hot.render();
});
});

});
</script>

</html>

PHP также очень простой

<?php
$result=array(
array("id" => 5, "name" => "Bill Gates", "address"=>"zzz"),
array("id" => 6, "name" => "Steve Jobs", "address"=>"xxx")
);

echo json_encode(json_encode($result));
?>

Когда я нажимаю кнопку «Попробуйте», ObjectData хорошо обновляется, но не таблица, несмотря на hot.render () инструкция.

Есть идеи о том, что я делаю не так?

Rgds

1

Решение

Я нашел проблемы.

.LoadData метод отсутствовал в сценарии JS и есть json_encode ошибка в php

Вот рабочий пример.

<html>

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="dist/handsontable.full.js"></script>
<link rel="stylesheet" media="screen" href="dist/handsontable.full.css">
</head>

<body>
<div id="hot" />
<br />
<input id="go" type="button" value="Click me" />
</body>

<script>
$(function() {
var objectData = [
{id: 1, name: 'Ted Right', address: ''},
{id: 2, name: 'Frank Honest', address: ''}];

$('#hot').handsontable({
data: objectData,
colHeaders: true
});

var hot = $("#hot").handsontable('getInstance');

$("#go").click(function(){

$.getJSON("actions2.php", function(result){
hot.loadData(result);
hot.render();
});
});

});
</script>

</html>

и файл actions2.php

<?php
$result=array(
array("id" => 5, "name" => "Bill Gates", "address"=>"zzz","ee"=>"zz"),
array("id" => 6, "name" => "Steve Jobs", "address"=>"xxx")
);

echo (json_encode($result));
?>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]