JavaScript を利用するページが限られている場合、layout に記述すると必要ないページまでロードするので、それは避けたい。そこでコントローラ/アクションに係るビューファイルに記述するのだが、ライブラリの読み込みは head 部に置きたいし、その他のソースもできれば head 部に記述したい。その方法について、「jQueryのAjaxでSelect入替」でやり方を記述していた。
1.2 ではコントローラで予め JavaScript ヘルパーを指定しておく必要があったが、1.3 になって Javascript ヘルパーは非推奨になった。で、代わりに Html ヘルパーで事足りるようになったようだ。
以下、head 部に jQuery の読み込みとイベントプログラムを挿入するための、ビュー上での記述の例です。ただし、layout ファイルでは「echo $scripts_for_layout」を記述しておく必要がある。
<?php $html->script(array('jquery-1.4.2.min'), false); $html->scriptBlock(<<<JS $(document).ready(function() { $("button").click(function() { return confirm('転送します'); }); }); JS , array('inline'=>false)); ?>