Welcome to the Cookbook

loading...

7.1 AJAX

Ajax ヘルパーは、Ajax 操作やクライアントサイドのエフェクト(効果)用の人気のある Prototype や script.aculo.us ライブラリのユーティリティです。Ajax ヘルパーを使用するには、Javascript ライブラリの最新バージョンを www.prototypejs.orghttp://script.aculo.us から入手し、/app/webroot/js/ に配置しなければなりません。さらに、Ajax ヘルパー機能を必要とするレイアウトやビュー内で、 Prototype や script.aculo.us JavaScript ライブラリを読み込む必要があります。

コントローラ内で Ajax や Javascript ヘルパーを読み込む必要があります:

class WidgetsController extends AppController {
	var $name = 'Widgets';
	var $helpers = array('Html','Ajax','Javascript');
}
  1. class WidgetsController extends AppController {
  2. var $name = 'Widgets';
  3. var $helpers = array('Html','Ajax','Javascript');
  4. }

javascript ヘルパーをコントローラ内で読み込むと、Prototype や Scriptaculous を読み込むために javascript ヘルパーの link() メソッドを使用できます:

echo $javascript->link('prototype');
echo $javascript->link('scriptaculous'); 
  1. echo $javascript->link('prototype');
  2. echo $javascript->link('scriptaculous');

これでビューで Ajax ヘルパーを使用できるようになります:

$ajax->whatever();
  1. $ajax->whatever();

RequestHandler コンポーネント がコントローラに含まれている場合、CakePHP はアクションが Ajax を通してリクエストされた際に自動的に Ajax レイアウトを適用します。

class WidgetsController extends AppController {
	var $name = 'Widgets';
	var $helpers = array('Html','Ajax','Javascript');
	var $components = array( 'RequestHandler' );
}
  1. class WidgetsController extends AppController {
  2. var $name = 'Widgets';
  3. var $helpers = array('Html','Ajax','Javascript');
  4. var $components = array( 'RequestHandler' );
  5. }