7.1 AJAX

Der AjaxHelper benutzt die populären Bibliotheken Prototype und script.aculo.us für Ajax und clientseitige Effekte. Um diesen Helfer benutzen zu können musst eine aktuelle Version von www.prototypejs.org und http://script.aculo.us in das /app/webroot/js/-Verzeichnis packen. Außerdem müssen die Bibliotheken in allen Layouts oder Views die AjaxHelper-Funktionalität benötigen, eingebunden werden.

Zuerst müssen die Ajax- und JavaScriptHelper im Controller eingebunden werden:

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. }

Ist das geschehen, kann die link()-Methode von JavaScriptHelper verwendet werden um die Bibliotheken einzubinden:

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

Jetzt kann der AjaxHelper verwendet werden:

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

Wenn der Controller die RequestHandler Komponente eingebunden hat, benutzt CakePHP automatisch das Ajax-Layout wenn eine Action per Ajax angefragt wird.

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. }