代码之家  ›  专栏  ›  技术社区  ›  Zahra Badri

在javascript中获取php数组(laravel)

  •  1
  • Zahra Badri  · 技术社区  · 6 年前

    我想用JavaScript代码传递PHP数组。当我这样使用时:

    var resData = "{{ json_encode($data['calendarItems']) }}";
    

    或者:

     var resData = "{{ $data['calendarItems'] }}";
    

    在这两种情况下,结果都是:

    [{"title":"rfvd vc","expired_at":"2018-12-31 00:00:00"}] //formatting
    

    和json.parse返回错误。我拿不到阵列

    3 回复  |  直到 6 年前
        1
  •  1
  •   M. Eriksson    6 年前

    这里有两个问题。第一个是引用JSON输出,第二个是将结果转义到HTML实体。

    删除引号并以原始格式输出结果:

    var resData = {!! json_encode($data['calendarItems']) !!};
    

    省略结果周围的引号将不需要使用 JSON.parse() ,因为变量从一开始就包含正确的JSON。

    阅读有关刀片中未捕获数据的更多信息 in the manual

        2
  •  1
  •   Mihir Bhende    6 年前

    当您执行时,它会将内部的字符串元素转换为HTML实体。所以 { 将转换为 "

    我建议你用 this 包,它更清晰地实现了将数据作为刀片文件中可用的JS变量传递。

        3
  •  1
  •   Dinesh Suthar    6 年前

    您可以尝试以下操作:

    var mapData = JSON.parse('<?php echo json_encode($latLng) ?>');

    哪里 $latLng 是一个PHP数组。