gpt4 book ai didi

php - Handsontable javascript - 从服务器加载数组

转载 作者:行者123 更新时间:2023-11-28 02:27:47 24 4
gpt4 key购买 nike

我想使用服务器端存在的数组在 Javascript 中创建一个 Handsontable。该数组只有一列:

$table[] = "a";
$table[] = "b";

要将其加载到 Handsontable 中,需要将其转换为:

var input = [["a"],["b"]];
$("#myTable").handsontable({
data: input,
startRows: 1,
startCols: 1
};

在 PHP 中,我首先使用 JSON 对其进行编码:

<?php echo json_encode($table); ?>

然后 getJSON 或另一个 ajax 函数以这种格式在客户端获取它,但我找不到正确的方法。希望有人能帮忙。

为了发布它,我已经尝试过1)使用隐藏字段发布

<input type="hidden" name="input_field" value=<?php echo json_encode($table); ?> >

并进入 Ajax 部分:

var input = $('#input_field').val();
alert(input);

但警报返回:未定义,并且数组 {a,b} 未加载到 Handsontable 中。2)或者我尝试使用$.getJSON。在 PHP 中:

$table = array();  
$table[] = array("a");
$table[] = array("b");
echo json_encode($table);

在 Ajax 中:

jQuery.getJSON('mypage.php',function(table){
alert(!);
});

警报未触发,Ajax 代码有错误,我认为是因为 Handsontable 未显示。谢谢。

最佳答案

在服务器端,可以创建数组的数组

$table[] = array("a");
$table[] = array("b");
echo 'var input = ' . json_encode($table) . ";\n";

这将给出

var input = [["a"],["b"]];

不需要隐藏字段或$.getJSON(),因为这已经是一个 JavaScript 数组,可以将其提供给 handsontable

如果您想在客户端执行此操作,请循环遍历数组并从 JSON 条目构建新数组

var json = ["a", "b"];
var input = Array();
for (var i in json)
input.push([json[i]]);

JSFiddle

您的问题中的隐藏字段有两个问题,首先是您必须在 value="..." 周围加上引号,并转义值内的引号。第二个问题是 jQuery 选择器。 #input_field 查找具有 id 但不具有 name 的元素。为此,您必须将 id="input_field" 添加到隐藏输入。

关于php - Handsontable javascript - 从服务器加载数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14643941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com