我想制作一个简单的片段。我想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返回空白
首先,声明你的smarty变量:
{assign var=somevar value="somevalue" scope="global"}
并且,在.tpl文件中使用它,该文件将包含<script>标记中的JavaScript:
<script>
var new_var = {$somevar}
console.log(new_var)
</script>
如果要使用PHP中的值,则将其分配给smarty对象,调用视图,并使用相同的方法显示它。