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の内容が表示されます。