smarty模板 将php数组传递给js变量

来源:互联网 发布:java基础入门电子书 编辑:程序博客网 时间:2024/05/21 06:48

php/Array ---> js /var

---config.php ---

<?php/* config data for each instance */$config = [    "instName" => "XS",    'panoAlias'=>'AXS',    "lng" => 120.2,    "lat" => 30.06,    "planes" => array(         array(120.9, 30.06, 'AXS32'),         array(120.2, 30.06, 'p00')        )];/*********************/if (function_exists('json_encode')) {   define(CONFIG, json_encode($config));}else{    die('no json_encode function');}?>

------index.php-------

<?phprequire_once 'Smarty-3.0.8/libs/Smarty.class.php';require_once ('config.php');$smarty->assign("config",CONFIG);$smarty->display("newmap.html");?>

-----newmap.html----

<!doctype html><html>    <head>        <script>            <span style="background-color: rgb(255, 255, 102);">var js_v = '{$config}'; <span style="color:#ff0000;">//记得引号</span></span>            var config_data = eval('(' + js_v + ')');            alert(config_data['planes'][0]);        </script>    </head></html>

输出结果: 120.9 30.06 AXS32


另1:

smarty 模板不分析{literal}....{/literal} 之间的代码。

<!doctype html><html>    <head>        {literal}        <script>            var config= "{$config}";            alert(config);        </script>        {/literal}    </head></html>

输出结果:{$config}


另2:

{foreach}.....{/foreach} 可用于smarty传递数组的输出。

详见:http://www.php100.com/manual/smarty/language.function.foreach.html


0 0
原创粉丝点击