2014-06-18 71 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 %}