Ajax で CakePHP を使用することは、通常の HTML/PHP と Ajax を使用することと大差ありません。
Cake APP での ajax 呼び出しと応答の例を次に示します。
jQuery:
$.ajax({
url: '/types/fetch/original',
cache: false,
type: 'GET',
dataType: 'HTML',
success: function (data) {
$('#context').html(data);
}
});
(設定に合わせて url パラメータを変更することを忘れないでください)。
これにより、Types コントローラーに ajax リクエストが送信され、パラメーター 'original' を使用してメソッド fetch() が呼び出されます。
TypesController は次のようになります。
class TypesController extends AppController {
public $components = array(
'RequestHandler'
);
public function fetch($type) {
$data = $this->Type->find('all', array(
'conditions'=>array(
'Type.type'=>$type
)
);
$this->set('data', $data);
}
}
RequestHandler コンポーネントを追加するということは、Cake が Ajax リクエストをレンダリングするときに最小限の Ajax レイアウトを自動的に使用することを意味します。通常、これは AppController に追加されるため、すべてのコントローラーが使用できます。
関連するビュー:
/app/View/Types/fetch.ctp
<ul>
<?php foreach($data as $item): ?>
<li><?php echo $item['Type']['name']; ?></li>
<?php endforeach; ?>
</ul>