Я пытаюсь загрузить данные в 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
Я нашел проблемы.
.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));
?>
Других решений пока нет …