【问题标题】:PHP array to jQuery, using json_encode: &qout; instead of "PHP 数组到 jQuery,使用 json_encode: &qout;代替 ”
【发布时间】:2015-03-04 09:57:33
【问题描述】:

我正在尝试向 jquery 发送一个 php 数组

这是我在 json 编码之前的数组:

Array ( [0] => 30-Dec [1] => 31-Dec [2] => 1-Jan [3] => 2-Jan [4] => 3-Jan [5] => 4-Jan [6] => 5-Jan [7] => 6-Jan ) 

这是json编码后的样子:

["30-Dec","31-Dec","1-Jan","2-Jan","3-Jan","4-Jan","5-Jan","6-Jan"]

如果我在 jquery 中使用 json 编码数组创建一个变量并在控制台中打印它,我得到以下结果:

[&quot ;30-Dec&quot ;,"31-Dec&quot ;,&quot ;1-Jan&quot ;,&quot ;2-Jan&quot ;,&quot ;3-Jan&quot ;,&quot ;4-Jan&quot ;,&quot ;5-Jan&quot ;,&quot ;6-Jan&quot ;]

但是t;之间没有空格

我在我的网站上使用 twig 和 silex。

编辑
这是我的代码 PHP 代码

函数 getDates($startTime, $endTime) { $day = 86400;

        $format = 'j-M';

        $startTime = strtotime($startTime);

        $endTime = strtotime($endTime);

        $numDays = round(($endTime - $startTime) / $day) + 1;

        $days = array();

        for ($i = 0; $i < $numDays; $i++) {

            $days[] = date($format, ($startTime + ($i * $day)));

        }

        return $days;

    }

    $days = getDates($lastday, $today);

    $days = json_encode($days);

这是我的 twig/jquery 代码

var days = '{{ days }}';

console.log(天);

【问题讨论】:

  • 我不认为这是json_encode的结果。 json_encode 应该返回json,不是吗?
  • 那么....你的代码是什么?
  • 问题不在于 json_encode ,更可能是通过模板引擎运行它的结果。阅读json_encode的手册文档
  • 显示编码数组的代码,将它传递给视图的位置,以及如何在视图中回显它。
  • 为什么不使用 Silex 的 helper 来返回 JSON Response?

标签: php jquery symfony twig silex


【解决方案1】:

决定如何向用户呈现一组给定的数据是视图层的角色。从您的 php 代码中删除 json_encode 调用,它应该返回一个简单的数组。将其传递给树枝并在那里进行编码:

{{ days|json_encode }}

【讨论】:

    【解决方案2】:

    如 charlietfl 之前所述,模板引擎/Twig 正在转义您的数据。一个简单的解决方法应该是应用 |raw 过滤器 [0]。

    [0]http://twig.sensiolabs.org/doc/filters/raw.html

    【讨论】:

      猜你喜欢
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 2012-07-28
      相关资源
      最近更新 更多