どーせすぐに忘れちゃうからメモ代わりに書いておく。
prototype.jsを使用している時限定。
単純に読み込み無しでPHPを走らせたい場合はこんな感じに書く。
var a = new Ajax.Request(URLを書く,{""method": "get"とか指定したいオプションを書く"},false);
あとは好きなように使える。
今日はCakePHPのAjaxヘルパーのlinkを使ってみた。
viewにはこんな感じで指定
link('リンクの文字','コントローラーのURL/メソッド名',array(お好みで指定)); ?>
コントローラにそれを受け取るメソッドがあればリンクの文字が押されたときに呼ばれるようになる
// ヘルパーにAjaxを追加しておく
// $ajax->link()が使えるように
var $helpers = array('Html', 'Form','Ajax');
funstion メソッド(){
$this->layout = "ajax";//こいつを指定してあげる
// 処理
exit;
}
呼ばれたときに、描画したりしない場合はこれでいける。
イベント後に一部を書き換えたりしたい場合はviewでこう書く
link('リンクの文字','コントローラーのURL/メソッド名',array('update'=>'書換えたい要素のID')); ?>
<div></div>
コントローラでrenderしてやると、viewで指定したid要素の中に書き出される
funstion メソッド(){
$this->layout = "ajax";//こいつを指定してあげる
// 処理
$this->render('書き出したい要素のview');
}
これで処理が終わると、指定した要素にviewが書き出される。
※layout をajaxにしてあげないと、layout 毎書き出されてしまう。
※デバッグログを出してる場合はログも出てしまう。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。