将smarty变量添加到JavaScript中

问题描述 投票:-2回答:1

我想制作一个简单的片段。我想console.log一个聪明的变量。我试过了 :

{php}
$GLOBALS['smarty']->assign("somevar", 'somevalue');
{/php}

在我的JavaScript中

{literal}
<script>
{/literal}{$smarty.lbrace}{literal} 
var new_var = '{/literal}{$somevar|escape:javascript}{literal}';
{/literal}{$smarty.rbrace}{literal}
console.log(new_var)
</script>
{/literal}

它在控制台日志中给了我一个空白页面,没有任何内容。在日志我得到

Smarty错误:第367行模板“file:/usr/share/nginx/html/page.tpl”中的语法错误“{/literal}{$smarty.lbrace} {literal}”$ smarty.lbrace未定义

我也试过了

{literal}
<script>
var new_var = '{$somevar}';
console.log(new_var)
</script>
{/literal}

它输出{$somevar}

{literal}
<script>
var new_var = '{/literal}{$somevar}{literal}';
console.log(new_var)
</script>
{/literal}

console.log返回空白

php smarty
1个回答
0
投票

首先,声明你的smarty变量:

{assign var=somevar value="somevalue" scope="global"}

并且,在.tpl文件中使用它,该文件将包含<script>标记中的JavaScript:

<script>
var new_var = {$somevar}
console.log(new_var)
</script>

如果要使用PHP中的值,则将其分配给smarty对象,调用视图,并使用相同的方法显示它。

© www.soinside.com 2019 - 2024. All rights reserved.