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'); } } }