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サイト制作の実績・料金を見る

この記事のシェア数

Kazuya Takato
Kazuya Takato 取締役 COO 兼 CTO / DX事業本部長 / 高遠 和也

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

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL