Welcome to the Cookbook

loading...

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