test function test(x){ alert(x[0]); alert(x[1]); -6ren">
gpt4 book ai didi

javascript - 如何使用 json_encode() 将 php 关联数组作为参数传递给 Javascript 函数

转载 作者:行者123 更新时间:2023-11-28 17:51:55 25 4
gpt4 key购买 nike

我可以使用下面的代码成功地将索引数组传递给 JavaScript 函数。例如:

<?php
$arr = array(1, 2, 3);
?>
<button onclick="test(<?=json_encode($arr)?>);">test</button>
<script>
function test(x){
alert(x[0]);
alert(x[1]);
alert(x[2]);
}
</script>

现在我想将数组更改为关联数组。然而,它不再起作用了......

我的代码有问题吗?

我该如何解决这个问题?非常感谢!

我的代码如下:

<?php
$arr = [ "A" => 1, "B" => 2, "C" => 3 ];
?>
<button onclick="test(<?=json_encode($arr)?>);">test</button>
<script>
function test(x){
alert(x["A"]);
alert(x["B"]);
alert(x["C"]);
}
</script>

最佳答案

生成的 JSON 中的引号会混淆 html 解析器。您需要对标签属性的内容进行实体编码。您可以使用 htmlspecialchars()htmlentities() 来实现此目的:

<?php
$arr = [ "A" => 1, "B" => 2, "C" => 3 ];
?>
<button onclick="test(<?=htmlentities(json_encode($arr))?>);">test</button>
<script>
function test(x){
alert(x["A"]);
alert(x["B"]);
alert(x["C"]);
}
</script>

关于javascript - 如何使用 json_encode() 将 php 关联数组作为参数传递给 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45317083/

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