2014-06-18 49 views
0

我在PHP中的数组:映射一个PHP数组的JavaScript

<?php 

return array(
'r'  => '16:9', 
'check'   => array(
          array('w' => 640, 'q' => 70), 
          array('w' => 960, 'q' => 70) 
        ),        
'window_height'  => 800 
); 

我需要在我的javascript得到这一点,所以我有:

<script>var config = "{{ json_encode(Config::get('conf')) }}";</script> 

但有麻烦的每个元素IM出。

注意:{{}}是回声的laravel。

+2

“注意:{{}}是laravel回声” - >它** **树枝,不是你为什么不创建一个PHP字符串变量laravel – Xatenev

+0

(json编码的东西),并尝试在模板中单独回应变量? Twig做了很多,但没有理由将所有的东西都卸载到Twig – amenadiel

+0

“让每个元素都出来”...... **如何**?你的json_encode不工作?无法访问JS中的配置数组? –

回答

1

假设您的模板引擎没有应用额外的HTML转义,您只需删除引号即可。 JSON编码为您处理所有这些。

<script>var config = {{ json_encode(Config::get('conf')) }};</script> 

您可以通过查看PHP脚本的原始输出来自行调试。 (通常在浏览器中查看源代码。)

现在,我不知道Twig,但是according to its documentation there may be a better way by using its own JS escaping。未经测试很明显,但试试这个:

{% autoescape 'js' %} 
    <script>var config = {{ Config::get('conf') }};</script> 
{% endautoescape %}