变量从 PHP 传递到 Smarty 和 Javascript
我在 php 中有一个对象,它像 $smarty->assign('o',$o) 一样传递给 Smarty 然后我需要在 JavaScript 中访问该对象及其属性。
在 tpl 中没有任何 javascript 的情况下,你如何做到这一点?我希望它们全部保存在外部文件中。
如果不可能,该怎么办?
I have an object in php, which is passed to Smarty like $smarty->assign('o',$o)
Then I need to access that object and it's properties in javascript.
How do you do it, without having any javascript in tpl. i want them all in an external file.
If not possible, how to do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不,这是不可能的。 Smarty 的
assign
方法只是将数据从 php 传递到模板。您可以创建自己的 smarty 函数来输出必要的 js 并将其用作模板中的修饰符:
Nope, it is not possible. Smarty's
assign
method just passes data from php to templates.You could create your own smarty function that would output necessary js and use it as modifier in your templates:
为了结合 zerkms 和 Didozavar 的答案,这里有一个可重用的修饰符函数:
编辑:
考虑到这一点后,用自定义函数镜像模板函数
{assign}
可能会更一致。To combine zerkms's and Didozavar's answers, here's a reusable modifier function:
Edit:
After thinking about this, it might be more consistent to make it mirror the template function
{assign}
with a custom function.<脚本类型=“text/javascript”>
var 变量 = {变量};
<script type="text/javascript">
var variable = {variable};
</script>
我使用了以下技术,它对我有用
在 smarty 变量周围使用双引号(单引号在我的情况下不起作用)
I used the following technique and it works for me
use double quote arround smarty variable(single quote is not worked in my case)
我相信我已经找到了解决方案,使得 ..content 不会出现在 .tpl 中,因此 html
将 php 变量直接在 .php 中传递给 javascript 变量,它将起作用,而不是 ...content 将出现在.tpl 和 html
I believe I have found the solution such that ..content won't appear in the .tpl and hence html
pass the php variable to javascript variable directly in the .php , it will work, and not ...content will appear in the .tpl and html
我使用了以下技术,它对我来说非常有效。
在 test.php 文件中。
在 test.tpl 文件中。使用grabMe 创建一个div。
效果很好。
I used following technique and it worked for me pretty well.
In test.php file.
In test.tpl file. create a div with grabMe.
It works fine.