我在将变量从JavaScript传递给smarty时遇到了一些麻烦。
示例:
{literal}
<script type="text/javascript">
var js_variable = 110;
</script>
{/literal}
jQuery('div.fakbox_msg').html("{/literal}{lang_sprintf id=100013 1=js_variable}{literal}");
答案 0 :(得分:1)
你不能以一种简单的方式做到这一点。在浏览器获取数据之前,PHP和扩展名Smarty将在服务器端进行解析和运行。当浏览器解析服务器发送的HTML,CSS和Javascript时,JavaScript在客户端运行。
您必须以某种方式发出新的HTTP请求,然后发送新数据。你可以通过重新加载整个网页并在查询字符串中发送内容(在URL之后?),或者通过从JS代码执行Ajax调用并使JS更改您想要的页面来实现。后者更复杂,需要一些Javascript知识,但页面不需要完整重新加载。 了解更多信息: Assign JavaScript variable to Smarty variable
答案 1 :(得分:0)
我从未使用Smarty,所以我可能错了,但是从我在你的代码中看到的。这应该有效:
jQuery('div.fakbox_msg').html("{/literal}{lang_sprintf id=100013 1=" + js_variable + "}{literal}");
答案 2 :(得分:0)
Smarty不能使用客户端变量,例如JavaScript创建的变量。