CakePHPでAjaxを使うときのメモ

Kazuya Takato

Kazuya Takato

どーせすぐに忘れちゃうからメモ代わりに書いておく。

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サイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。2023年7月には社長室室長に就任にし、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担っています。

このメンバーの記事をもっと読む