ajaxメモ

cakephp3でajaxの実装を行うのに苦労したのでメモ

  • 実装したいこと

クリックイベントからajaxを利用してactionを実行し、SQLを流したい。

【1】jqueryにクリックイベントを作る

$(function (){
//ここにJS読み込み時に実行させたいコードの内容を書き込む
	$('hoge').click(function(){
		//ここにクリック時した時に実行したいコードを書き込む
		$.ajax({
			//ajaxの実装
			url:"呼び出したいactionのURL指定",	//http://localhost/project/controller/action
			type:"get", //get 又はhost
			dataType:"json"
		}).done(function(data){
			//データ送信成功時の処理内容
			console.log(data); //F12のコンソールからログでデータ送受信できてるかが確認できる
		}).fail(function () {
			//データ送信失敗時の処理内容
			alert("fail");
        });
    });
});

【2】controller側にajaxから呼び出したい処理の記述を行う

<?php
public function hoge()
{
//今回は画面を新規に作らないのでオフにしておく
        $this->autoRender = false;
        if ($this->request->is('ajax')) {
            try {
                $data;
                //$dataにクエリビルダ実行結果を代入
                $this->set(compact('data'));
                $this->set('_serialize', ['data']);
            } catch (Exception $e) {
                $this->log('error');
            }
        }
}