Javascript 将PHP数组转换为JSON对象以自动完成
我正在使用,并且希望使用我的一个PHP数组将所有可能的选项输出到表单中。请参阅下面的当前代码Javascript 将PHP数组转换为JSON对象以自动完成,javascript,php,materialize,Javascript,Php,Materialize,我正在使用,并且希望使用我的一个PHP数组将所有可能的选项输出到表单中。请参阅下面的当前代码 const ac = document.querySelector('.autocomplete'); M.Autocomplete.init(ac, { data: { "Test1": null, "Test2": null, "Test3": null }, }); 我非常希望使用一个简单的$keysArray来输入Test1、Te
const ac = document.querySelector('.autocomplete');
M.Autocomplete.init(ac, {
data: {
"Test1": null,
"Test2": null,
"Test3": null
},
});
我非常希望使用一个简单的$keysArray来输入Test1、Test2、Test3选项等。但是,我从MaterializeCSS页面了解到,autocomplete使用的是一个对象,而不是数组。因此,我尝试使用各种不同的方法将$keysArray转换为对象:
<?php
$keysArray = array (
"Test1",
"Test2",
"Test3"
);
?>
var tempArray = <?php echo json_decode(json_encode($keysArray)); ?>; // Doesn't work
var tempArray = <?php echo json_decode(json_encode($keysArray, JSON_FORCE_OBJECT)); ?>; // Also doesn't work
const ac = document.querySelector('.autocomplete');
M.Autocomplete.init(ac, {
data: tempArray;
});
var tempArray=;//不起作用
var tempArray=;//也不起作用
const ac=document.querySelector('.autocomplete');
M.Autocomplete.init(ac{
资料来源:temparay;
});
临时数组的工作都没有。如果有人能帮我找出我做错了什么,我将不胜感激。一旦编码完成,您就可以将其解码回数组。删除
json\u解码
<?php
$keysArray = array (
"Test1",
"Test2",
"Test3"
);
?>
var tempArray = <?php echo json_encode($keysArray); ?>;
const ac = document.querySelector('.autocomplete');
M.Autocomplete.init(ac, {
data: tempArray;
});
var tempArray=;
const ac=document.querySelector('.autocomplete');
M.Autocomplete.init(ac{
资料来源:temparay;
});
编码完成后,您将其解码回数组。删除json\u解码
<?php
$keysArray = array (
"Test1",
"Test2",
"Test3"
);
?>
var tempArray = <?php echo json_encode($keysArray); ?>;
const ac = document.querySelector('.autocomplete');
M.Autocomplete.init(ac, {
data: tempArray;
});
var tempArray=;
const ac=document.querySelector('.autocomplete');
M.Autocomplete.init(ac{
资料来源:temparay;
});
将数组转换为类似的键值结构:
$keysArray = array(
"Test1" => null,
"Test2" => null,
"Test3" => null,
);
echo json_encode($keysArray); // {"Test1":null,"Test2":null,"Test3":null}
它可以通过以下方式进行转换:
$array = array('Test1', 'Test2', 'Test3');
$keysArray = array_combine($array, array_fill(0, count($array), null));
将数组转换为类似的键值结构:
$keysArray = array(
"Test1" => null,
"Test2" => null,
"Test3" => null,
);
echo json_encode($keysArray); // {"Test1":null,"Test2":null,"Test3":null}
它可以通过以下方式进行转换:
$array = array('Test1', 'Test2', 'Test3');
$keysArray = array_combine($array, array_fill(0, count($array), null));
一旦编码完成,您就可以将其解码回数组中。删除json_decode call这可能会起作用$keysObject=(object)$keysArray;我不知道为什么我不能使用Javascript方法使它工作,但是使用Jquery很容易。这是您可以做的吗?编码完成后,您会将其解码回数组中。删除json_decode call这可能会起作用$keysObject=(object)$keysArray;我不知道为什么我不能使用Javascript方法使它工作,但是使用Jquery很容易。这是你能做的吗?似乎大家都同意应该删除解码!然而,出于某些原因,这并没有帮助。由于以下链接,我将解码和编码一起使用:-但可能是完全其他的东西出了问题?@ChartProblems我认为您对PHP和JavaScript这两种不同语言中的数组和对象感到困惑。这篇文章讨论的是将数组转换为PHP对象,但您希望在JavaScript中使用对象
json_encode
将PHP数组或对象编码为JavaScript对象表示法,可以在JavaScript代码中作为JavaScript对象直接使用。PHP在服务器上运行,而JavaScript在浏览器下载并呈现页面时执行。@ChartProblems输出是什么样子的?查看页面的源代码并查看JS代码。PHP代码的输出将在JS代码中。在这种情况下,输出应该是JSON。似乎大家都同意应该删除解码!然而,出于某些原因,这并没有帮助。由于以下链接,我将解码和编码一起使用:-但可能是完全其他的东西出了问题?@ChartProblems我认为您对PHP和JavaScript这两种不同语言中的数组和对象感到困惑。这篇文章讨论的是将数组转换为PHP对象,但您希望在JavaScript中使用对象json_encode
将PHP数组或对象编码为JavaScript对象表示法,可以在JavaScript代码中作为JavaScript对象直接使用。PHP在服务器上运行,而JavaScript在浏览器下载并呈现页面时执行。@ChartProblems输出是什么样子的?查看页面的源代码并查看JS代码。PHP代码的输出将在JS代码中。在本例中,输出应该是JSON。感谢您的帮助,但即使我将其转换为键值结构,它仍然不起作用。我开始认为问题完全是其他原因造成的?不起作用
是无用的句子。如您所见,正确的数组结构json_编码为正确的json。所以你可能也有问题。谢谢你的帮助。我发现我必须在“data:tempArray”后面加逗号,而不是分号。这就是问题的原因。感谢您的帮助,但即使我转换为键值结构,它仍然无法工作。我开始认为问题完全是其他原因造成的?不起作用
是无用的句子。如您所见,正确的数组结构json_编码为正确的json。所以你可能也有问题。谢谢你的帮助。我发现我必须在“data:tempArray”后面加逗号,而不是分号。这就是问题的根源。