Smarty的使用中,有一些麻烦的事。比如在模版可以用{$data}这样的写法,但因为很多模版一般都有它独自的javascript,所以写成了 <{$data}> 或 [{$data} 的样子。使用标签{literal}<script>[javascript code]</script>{/literal}虽然是一个解决办法,当然,你也可以为所需的javascript单独写个文件引用(麻烦)。但如果javascript中需要php变量时,这就不合适了。
但我想了一个比较锉的办法。把javascript写在php文件中。
php文件:
$script = <<<EOT
function test(){}
EOT;
$smarty->assign('script',$script);
模版文件:
<script>{$script}</script>
当然,javascript有的要用$,你要么直接用javascript库名,或者 $doll = '$'; $script = <<<EOT {$doll}.ajax({ ....
如果不用PHP变量,也不用标签{literal},那么可以在php使用Heredoc结构(需php5.3)写JS。
但我想了一个比较锉的办法。把javascript写在php文件中。
php文件:
$script = <<<EOT
function test(){}
EOT;
$smarty->assign('script',$script);
模版文件:
<script>{$script}</script>
当然,javascript有的要用$,你要么直接用javascript库名,或者 $doll = '$'; $script = <<<EOT {$doll}.ajax({ ....
如果不用PHP变量,也不用标签{literal},那么可以在php使用Heredoc结构(需php5.3)写JS。