Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JavaScript变量传递给smarty_Javascript_Variables_Smarty - Fatal编程技术网

将JavaScript变量传递给smarty

将JavaScript变量传递给smarty,javascript,variables,smarty,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}"); {literal} var js_变量

我在将变量从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}");
{literal}
var js_变量=110;
{/literal}
jQuery('div.fakbox_msg').html({/literal}{lang_sprintf id=100013 1=js_variable}{literal}”);

我从未使用过Smarty,所以我可能错了,但从我在您的代码中看到的情况来看。这应该起作用:


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

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

您不能简单地使用。在浏览器获取数据之前,在服务器端解析并运行PHP和Smarty扩展。当浏览器解析服务器发送的HTML、CSS和JavaScript时,JavaScript在客户端运行

您必须以某种方式发出新的HTTP请求,发送新数据。您可以通过重新加载整个网页并在querystring中发送内容(在URL中的?之后)来实现这一点,或者通过从JS代码中执行Ajax调用来稍微高级一点,并让JS执行您希望的页面更改。后者更复杂,需要一些Javascript知识,但页面不需要全部重新加载。 有关更多信息:

感谢您的及时回复,我尝试使用此方法,但总是得到一个空对象:(您能提供更多有关您尝试执行的操作的详细信息吗?客户端脚本(Javascript)考虑到Smarty是一个PHP模板引擎,这里看起来真的不正确。你考虑过使用Smarty变量吗?当然,我尝试使用Javascript:100013='Hy my number is%1$d'jQuery('div.fakbox_msg').html({/literal}{lang sprintf id=100013 1=“+js_variable+”}{literal})在Smarty中设置和动态var;代码是正确的,因为当我尝试删除{literal}标记时,js_变量起作用:例如:{literal}var js_variable=110;{/literal}jQuery('div.fakbox_msg').html({lang_sprintf id=100013 1=“+js_variable+”);输出是:{lang literal}var sprintf id=100013 1=110},并使用{literal}{literal}{literal}{js u}标记:{var=110;}jQuery('div.fakbox_msg').html(“{/literal}{lang_sprintf id=100013 1=“+js_variable+”}{literal}”);输出为:Hy my number是0,但两者都不正确我需要输出为Hy my number是110这是不可能的。PHP在服务器端执行,JavaScript在客户端执行。一旦JavaScript被执行,就不再有Smarty的概念。不可能重复您想要做的事。PHP在客户端执行服务器端和客户端的JavaScript。