将JavaScript变量传递给smarty

Passing JavaScript variable to smarty

本文关键字:smarty JavaScript 变量      更新时间:2023-09-26

我有一些麻烦从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}");

这不是一件容易的事。PHP,以及扩展后的Smarty,在浏览器获取数据之前在服务器端进行解析和运行。当浏览器解析服务器发送的HTML、CSS和JavaScript时,JavaScript在客户端运行。

您将不得不以某种方式发出新的HTTP请求,发送新的数据。你可以通过重新加载整个网页和发送的东西在查询字符串(之后?在URL中),或者稍微高级一点,从JS代码中执行Ajax调用,并让JS对页面进行所需的更改。后者更复杂,需要一些Javascript知识,但不需要重新加载整个页面。更多信息:赋值给Smarty变量

我从来没有使用过Smarty,所以我可能是错的,但从我看到你的代码。这应该可以工作:

jQuery('div.fakbox_msg').html("{/literal}{lang_sprintf id=100013 1=" + js_variable + "}{literal}");

Smarty不能使用客户端变量,比如JavaScript创建的变量