首页 > 解决方案 > 从 json_encode 返回失败

问题描述

我已经安装并工作了 jssor 滑块。我正在尝试添加使用 php 从外部文件更改幻灯片类型的功能。在我未经编辑的 jssor 代码中,如果我输入以下内容作为幻灯片类型,它们将按预期工作:

    {$Duration:800,$Opacity:2},
    {$Duration:1000,y:1,$Easing:$Jease$.$InBounce,$Opacity:2}

当我尝试从函数加载时,如下面的代码所示,控制台命令的输出是

    0: "{$Duration:800,$Opacity:2},"​
    1: "{$Duration:1000,y:1,$Easing:$Jease$.$InBounce,$Opacity:2}"

如果我去掉引号并将它们放在 _SlideshowTransitions 函数中,它们就可以工作。那么是引起问题的引号吗?如果是这样,我该如何删除这些?还是 jssor 函数不适用于变量?或者是其他东西?

    function GetTransitions() {
        $xsisitons = array();
        $xsisitons[] = '{$Duration:800,$Opacity:2},';
        $xsisitons[] = '{$Duration:1000,y:1,$Easing:$Jease$.$InBounce,$Opacity:2}';
        return json_encode($xsisitons);
    }
    $jsondata = GetTransitions(); 

    <script>
    var xsitions = <?php echo $jsondata; ?>;
    console.dir(xsitions);

    var _SlideshowTransitions = [
      xsitions
    ];
    </script>

标签: phpjsonjssor

解决方案


你想要的不是正确的json,所以json_encode不会帮助你。但是,您可以自己构建 js 字符串。

$xsisitons[] = '{$Duration:800,$Opacity:2}';
$xsisitons[] = '{$Duration:1000,y:1,$Easing:$Jease$.$InBounce,$Opacity:2}';
return '[' . join(',', $xsisitons) . ']';

推荐阅读