ajaxヘルパーの使い方

今更ながら初めてajaxヘルパーを使ったので基本的なとこだけメモ。

事前準備としてprototype.jsをAPP/webroot/jsに置いておきましょう。

view1

<?php
echo $javascript->link('prototype');

//update:ajaxで更新されるエレメントのid
//loading:読み込み中に実行されるコード
//complete:読み込み完了後に実行されるコード
$options = array('update'   => 'update_div_id',
                 'loading'  => 'Element.show('loading_img_id');',
                 'complete' => 'Element.hide('loading_img_id');'
           );
  
//フォームの作成(formヘルパーでいうcreateメソッド)
echo $ajax->form('example/ajax', 'post', $options);
//以下いつもと同様にフォームの中身を記述

//読み込み中に表示する画像
echo $ajax->div('loading_img_id');
echo $html->link($html->image('loading.gif', array('style' => 'display:none'););
echo $ajax->divEnd('loading_img_id');

//ajaxで更新されるエレメント
echo $ajax->div('update_div_id');
echo $ajax->divEnd('update_div_id');
?>

view2

<?php echo $message; ?>

controller

<?php 
class ExampleController extends AppController {
    var $name    = 'Example';
    var $helpers = array('Javascript', 'Ajax');

    function ajax() {
        //何らかの処理を記述

        $this->set('message', '更新しました');
        $this->render('view2', 'ajax'); //ajaxレイアウトでview2をレンダリング
    }
}
?>


この(適当な)例の場合、フォームを送信すると$ajax->divメソッドによって書き出された、

<div id="update_div_id"></div>

の間に$messageの内容が表示されます。