アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくお願いします。

SmartyのテンプレートにPHPファイルからassignされた変数を、

Javascriptの変数に割り当てたいと思います。

Smartyのテンプレート内では、デフォルトの設定だと、
{$hoge}
として、値をHTMLとして書き出す仕様ですが、
色々な諸事情から、このデフォルト設定を、

{{$hoge}}

として、{ を二度重ねないと機能しないように設定変更しています。

そこで、下記のようなJavascriptを実行しても上手くいかず、かなりはまってしまってます。
お助けください。

※ダメな例
<script type="text/javascript">
var balloonA = {{$hoge}};
document.writeln (balloonA);
</script>


※↓これだと当然出力されます。
※aaaaa と表示される。
<script type="text/javascript">
var balloonA = "aaaaa";
document.writeln (balloonA);
</script>

なぜ、上の書き方だと変数内の値を取得できないのでしょうか?
"{{$hoge}}"や'{{$hoge}}'
として試しました。でもだめです。
色々ネットで探しましたが、
{literal} を使って・・・・というのもやりましたが、ダメでした。
そもそも、Smartyのデフォルト設定を {{ に変更しているので関係ないと思います。

ん~~何卒お力をおかしください。

A 回答 (1件)

通常は{literal}で対応可能です。



{literal}もダブル{{literal}}で指定ダメとか言うことはないですか?

この回答への補足

ダブル{{literal}}でかこってもダメでした。

'{{literal}}' としたら

{{$hoge}}

とそのまんまのコードが文字列として理解されたのか、
画面に表示されます。
ちなみに、
下記のようにやってみました。

{{literal}}
<script type="text/javascript">
var balloonA = {{$hoge}};
document.writeln (balloonA);
</script>
{{/literal}}

補足日時:2012/06/27 14:55
    • good
    • 0
この回答へのお礼

訂正

ダブル{{literal}}でかこってもダメでした。

'{{literal}}' としたら

{{$hoge}}


この文の'{{literal}}' としたら の箇所は、
正しくは'{{$hoge}}' としたら です。

お礼日時:2012/06/27 14:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!