- 締切済み
Smarty変数の値をJavascript変数代入
よろしくお願いします。 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のデフォルト設定を {{ に変更しているので関係ないと思います。 ん~~何卒お力をおかしください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- singlecat
- ベストアンサー率33% (139/418)
回答No.1
通常は{literal}で対応可能です。 {literal}もダブル{{literal}}で指定ダメとか言うことはないですか?
お礼
訂正 ダブル{{literal}}でかこってもダメでした。 '{{literal}}' としたら {{$hoge}} この文の'{{literal}}' としたら の箇所は、 正しくは'{{$hoge}}' としたら です。
補足
ダブル{{literal}}でかこってもダメでした。 '{{literal}}' としたら {{$hoge}} とそのまんまのコードが文字列として理解されたのか、 画面に表示されます。 ちなみに、 下記のようにやってみました。 {{literal}} <script type="text/javascript"> var balloonA = {{$hoge}}; document.writeln (balloonA); </script> {{/literal}}