将JavaScript变量传递给smarty

时间:2011-07-27 22:13:57

标签: javascript variables smarty

我在将变量从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}");

3 个答案:

答案 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创建的变量。