这里在index.tpl智者分配到JavaScript的外部
在这里javas.js
var currentTS = "{literal}{$userid}{/literal}";
alert(currentTS);
但会有警报{literal}{$userid}{/literal}
不是$userid
。 有什么想法?
这里在index.tpl智者分配到JavaScript的外部
在这里javas.js
var currentTS = "{literal}{$userid}{/literal}";
alert(currentTS);
但会有警报{literal}{$userid}{/literal}
不是$userid
。 有什么想法?
将javascript文件包含在index.tpl中。如果你拥有了它你的模板目录以外,你必须使用file:/...
符号(和使用自己的路径,的赛道):
<html>
<head
<script type='text/javascript'>
{include file='file:/home/www/mydomain/public_html/js/javas.js'}
</script>
如果您有它在你的模板diretory简单:
<html>
<head
<script type='text/javascriptä>
{include file='javas.js'}
</script>
现在Smarty应该解析并编译它。
此外,在我看来,你是错误的方式。如果你在你的JS使用大括号文件,你应该用{}文字标记和“unliteralize” Smarty的变量启动JS:
{literal}
function test() {
var name = '{/literal}{$name}{literal}';
// do something
}
{/literal}
不要使用{}字面你 不需要它这里。
{文字}力量显示所有{因为它们是,并且不解析聪明的代码。因此{$}用户ID会显示,因为它是。
在你所在的地方展示它毫无意义。
Smarty只能在php下运行,不能在.js中运行它,除非在apache configruations中将.js添加到php扩展中。
最重要的是,在我看来,你试图从你的index.php访问{$ userid}变量。那永远不会发生!除非你包括像karvonen文件服务器端解释。 而你的{literal}
标签是不必要的,你开始文字,当你要使用{
和}
不是smarty标签,但为JavaScript,CSS等。 和唯一一次你看到他们周围的smarty标签是相反的方式作为karvonen解释
这里是我的建议:你在index.tpl权包括java.js文件做到这一点之前:
<!--index.tpl-->
<script type='text/javascript'>UserID = '{$userid}';</script>
<script type='text/javascript' src='pathto/java.js'></script>
/*java.js*/
var currentTS = UserID;
alert(currentTS);
Thanks.Worked罚款整数! – 2012-09-26 06:31:58
还我忘了提及。你要确保你把双引号“”,围绕它只有在你想要的字符串值,如果它是从变量的名字听起来像一个primay唯一键你最好把没有引号 – Neo 2010-10-13 18:20:52