【问题标题】:Symfony 4 - PHP convert multidimensional array to javascriptSymfony 4 - PHP 将多维数组转换为 javascript
【发布时间】:2020-05-22 15:25:02
【问题描述】:

您好,我的控制器上的 Symfony 中有这个数组:

    $array = [
        "label" => [
            "january",
            "february"
        ],
        "data" => [
            0,
            1
        ]
    ];

I wish I could convert it for use in Javascript.

目标是我能搞定JS:

[“一月”,“二月”] 和 [0,1]

将它们用作数组变量

我尝试了json_encode($array),它可以工作,但我无法在 Javascript 块的 Twig 中使用 {{array["label"}} 访问我的数组

有人可以帮帮我吗?

编辑:好的,伙计们,现在可以了,我这样做了:

控制器:

    return $this->render('products/index.html.twig', [
        "report" => json_encode($report),
    ]);

index.html.twig (javascript bloc)

const data = {{report | raw}};

谢谢大家!

【问题讨论】:

  • 请在您的问题中添加控制器中返回响应的部分和您尝试读取数据的树枝。

标签: javascript php arrays json symfony


【解决方案1】:

您不必调用 JSON.parse,因为 json_decode 的输出是一个 javascript 文字。只需将其分配给变量即可。

var yourArray = <?php echo json_encode($array); ?>;

你可以像这样访问属性

alert(yourArray[0].Key);

【讨论】:

  • 不,它不起作用,我有这个错误:Impossible to access a key ("0") on a string variable ("{"label":["January","February"],"data":["0","1"]}").
  • 试一试yourArray[0][1] 或试一试alert(yourArray[0].1); 在这里查看如何访问数组中的数据jsfiddle.net/9f5zn2s6
【解决方案2】:

您可以尝试使用:

PHP:

$array = [
    "label" => [
        "january",
        "february"
    ],
    "data" => [
        0,
        1
    ]
];
$response = new Response(json_encode($array));
$response->headers->set('Content-Type', 'application/json');
return $response;

JavaScript:

var data = JSON.parse(response);
console.log(data.label)

希望能帮到你。

【讨论】:

  • 啊,不,它不起作用。我正在使用 Symfony,所以我必须使用 var data = JSON.parse({{response}}) 访问我的变量但它不起作用
  • @eronn 你能在这里提供 dd(data) 吗?
【解决方案3】:

你得到的是一个 Json 字符串,而不是一个对象,你首先要在 Javascript 中解析它。

const data=JSON.parse(array);

【讨论】:

  • 不正确,如果这被拉入 JS 字符串,那么是的,但由于我们使用的是 PHP,我们实际上可以通过将 json_encode 结果回显到脚本中来分配它,例如:@ 987654322@
  • 不,它不起作用,我在控制台中有这个错误:``` Uncaught SyntaxError: Unexpected token '&' ``
  • @JoshWood 他在他的树枝视图中,而不是在简单的 HTML/PHP 模型中。你的建议是行不通的
  • @Preciel 我很抱歉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 2011-12-09
  • 1970-01-01
相关资源
最近更新 更多