CakePHP::ViewをJavascriptで出力
7月 12th, 2007 admin Posted in CakePHP, PHP |
ViewをJavascriptで出力という表現があっているかどうかわかりませんが・・・Viewの内容をdocument.writeで書き出してくれます。
コード
/app/controllers/ads_controller.php
< ?php
class AdsController extends AppController {
var $name = 'Ads';
var $layout = "javascript";
function index(){
$this->set('data','exaple data');
}
}
?>
/app/views/layouts/javascript.thtml
< ?php
header("Content-type: application/x-javascript");
$content_for_layout = r(array("\r\n","\n"),"",$content_for_layout);
echo 'document.write("'.r('"','\"',$content_for_layout).'")';;
?>
/app/views/ads/index.thtml
< ?php echo $data ?>
example.html
<script type="text/javascript" src="http://localhost/cake/ads/"></script>
出力
example.html
exaple data
ポイントはコントローラーでjavascript用のレイアウトの使用を宣言すること、レイアウトで、javascriptのヘッダを出力し、ビューの改行を削除しているところです。(1行づつdocument.writeをつけたほうがいいかも。)
※r()はCakePHPが用意してくれているstr_replaceのラッパー
Leave a Reply