ここから本文です

PHP で JavaScript のスクリプトを出力して、Smarty に表示させる方法

cas********さん

2011/11/1306:22:27

PHP で JavaScript のスクリプトを出力して、Smarty に表示させる方法

JavaScript 初心者です。
いま、Google Map API を使って色々遊んでいるのですが、質問があります。

今、考えていることですが、緯度、経度情報をデータベースに入れておき、何か条件を入れたら、PHPでデータベースからデータを探してきます。 そして、そのデータをGoogle Map に表示したいと考えています。

Google Map では、 JavaScript 上で、緯度経度を指定するようになっています。ですので、PHPで無理やり JavaScript のスクリプトを書いて、表示してしまえ、、と思っていました。

問題は、Smarty で出力しようとすると、JavaScriptの部分を例えば {literal} {/literal} で括ってしまわないといけません。しかし そうすると、PHPで記述したスクリプト部分が無視されてしまうので、変数がそのまま表示されてしまいます。

こういう場合ってどうすればいいか、どなたかご存知ありませんか?

閲覧数:
778
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

nic********さん

編集あり2011/11/1307:36:17

{literal}
<script>
function hoge(){
alert("{/literal}{$fuga}{literal}");
}
</script>
{/literal}
これで動くのだからこう書けばいい。
正直、スマートな解決策は存在しない。変数部分を最小限に抑える程度。テンプレートを綺麗に保ちたいなら、delimiterを「{」ではない記号に置き換えたりとか、プレフィルタ(テンプレートの内容を事前変換する機能)を使ってどうにかするしかない。
個人的には、Smartyのような前時代的な低機能テンプレートエンジンを使うのが間違っていると思うが、まあ業界標準だし仕方ないのかな。

質問した人からのコメント

2011/11/13 07:38:52

成功 すばらしい。目からうろこです。
「コードなんて物は動けば勝ちであり」全く同感です。私も、いい方法なんぞさがしていない。つまり、こんな方法さえ思いつかなかったということです。 とりあえず感謝。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる