2011-09-18 111 views
0

可能重复:
how to assign a javascript variable to a smarty variable分配JavaScript变量Smarty的变量

我想用JavaScript来指定一个文本框的值Smarty的变量,并调用Smarty的功能,但我不能这样做。

请指导我。

+1

JavaScript在客户端执行,Smarty - 在服务器端。 JavaScript没有办法直接在当前请求中与php(smarty)联系。其他方法 - AJAX。 –

+1

Smarty是PHP并运行在**服务器端**。 JavaScript在**客户端**上运行。当JavaScript执行时,PHP的工作已经完成。 –

+0

[如何将一个JavaScript变量分配给一个smarty变量](http://stackoverflow.com/questions/1271026/how-to-assign-a-javascript-variable-to-a-smarty-variable)和[回声JavaScript变量变成聪明](http://stackoverflow.com/questions/4633172/echo-javascript-variable-into-smarty)和[变量从Javascript - > Php - > Smarty ...有可能吗?](http: //stackoverflow.com/questions/6672929/variable-from-javascript-php-smarty-is-it-possible) –

回答

2

你不能以简单的方式做到这一点。在浏览器获取数据之前,PHP和扩展名Smarty在服务器端被解析并运行。当浏览器解析服务器发送的HTML,CSS和Javascript时,JavaScript将在客户端运行。

您将不得不以某种方式发送新的HTTP请求,以发送新数据。你可以通过重新加载整个网页并发送查询字符串中的内容(在URL中的?之后)或通过从JS代码执行Ajax调用稍微更高级来实现,并使JS对所需页面进行更改。后者更复杂,需要一些Javascript知识,但不需要重新加载页面。

1

你的意思是这样吗?

<script> 
var foo_bar = {$foo.bar|escape:javascript}; 
</script> 

请注意,如上所述,该值是计算服务器端。

UPD。我现在明白了,你想以相反的方式传递价值。不,这是不可能的。