cakePHPでJavascriptを出力する
2月 3rd, 2008 Posted in cakePHP, PHPHTMLに以下のようなJavascriptのコードを埋め込み、srcでPHPなどの動的な処理をするファイルを指定すると、静的なHTMLに動的な処理を埋め込むことが出来ます。アクセス解析のサービスなどでよくありますね。
- <script src="xxx.php" type="text/javascript"></script>
で、srcにPHPのファイルを指定し、PHP側でJavascriptのコードを出力する処理を書けば実現できます。詳しいやり方は、PHP:JS(JavaScript)からPHPを呼び出しHTML上に出力する方法に丁寧に書かれているので参考にしてください。
で、cakePHPでこの処理を書こうと思ったわけです。まずは、Javacsriptを呼び出すHTML側では、
- <script src="/app/[コントローラー]/[メソッド]/[プロパティ]" type="text/javascript" charset="utf-8"></script>
のように書きます。controller側のメソッドでは、最初に
- header("Content-type: application/x-javascript");
を書く必要があるようです。viewでheaderを出力すると、Javascriptとして認識されません。
cakePHPの/app/core.phpのDEBUGモードが0以外だと余計なモノが出力されるのでJavascriptとして認識されないみたいです。ボクは動作確認はDEBUGモードを0にしてやっています。特定の場合だけDEBUG出力を抑制することは出来ないモノですかね。
こちらもオススメ!