スマーティでWebサイトを制作してJavascriptの中にsmarty変数を使って
JSとsmartyを連携させたいと思ったけどこれがやっかいだったあせる

jsで{}をつかっているとsmartyエラーが出る!
これは、回避方法を知っていたので {literal} で囲んでそのまま表示させれるようにした。
でも、これだとsmarty変数使えなくない!?
ってことで、JSの{}の部分だけを{literal}で囲む方法にしてみたらできましたひらめき電球

Javascriptのソースにsmarty変数を書きこむやり方
{literal}
function hoge() {
{/literal}

 window.alert({$hogehoge});

{literal}
}
{/literal}


if文とか使っているとソースぐちゃぐちゃになるのでできれば違う方法を見つけたい。



tohokuaikiさんから別のやり方を教えていただきました。
ありがとうございます!
Smartyをnewした後に、デリミタの変更で見やすくできます。

$smarty = new Smarty();
$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';
という感じ。

これで、{$hoge}じゃなくて、<{$hoge}>で解釈されるので、JavaScript・CSSも問題なく掛けます。


こんな方法があるなんて知りませんでしたビックリマーク
今後使ってみよう。