CakePHP で Ajax  ©  株式会社 一六社 入門編 発表者  MICK http://mick.blog16.jp/
©  株式会社 一六社 はじめに CakePHP の Ajax ヘルパーを利用する prototype.js を使う JavaScript の記述がシンプルになる 1.1 系と 1.2 系の両方の話 ◇ Prototype.js -> Sam   Stephenson 氏が提供するサイトから取得できる。 http://www.prototypejs.org/download
©  株式会社 一六社 動作サンプル 実際のソース等を見る前に、 本日の宿題をみて頂きます。
©  株式会社 一六社 データの流れと処理 index ( URL の登録) conversion   ( RSS フィードを検出⇒内容取得など) レスポンスを出力 記事の出力 エラー出力 ① 非同期通信 ② 処理結果の返却
©  株式会社 一六社 最初にすること Ajax ヘルパーを使うために prototype.js を js ディレクトリへ配置 使用するレイアウトで prototype.js を読み込む   echo $javascript->link('prototype'); Controller    var $helpers = array('Ajax‘);   var $components = array('RequestHandler');
©  株式会社 一六社 書き方(アクション) 今回は Ajax ヘルパーの form メソッドを利用して、画面遷移のない形で送信を行う。 第1引数には、フォームの送信先(アクション) 第2引数には、フォームの送信方式を指定(未設定は post ) 第 3 引数はオプション。 echo $ajax->form("conversion/", "post", $options);
©  株式会社 一六社 ヘルパーオプション Ajax ヘルパーの各メソッドでは、共通で利用するオプションがある。 ※ 今回使った設定したオプション $options[‘update’]   Ajax 操作の結果で更新したい DOM ID $options[‘loading’]   リモートドキュメントのデータが読み込まれている時に実行されるJSコード $options[‘complete’]   XmlHttpRequest が完了した時に呼ばれるコード ※ その他のオプションはマニュアルを参照して下さい
©  株式会社 一六社 コントローラ処理例 データを受け取ったコントローラでの処理例。 ・ ajax 呼ばれたかどうか if( $this->RequestHandler->isAjax() ){ $this->layout = “ajax”;// レイアウトの指定 //==  処理  ==// }else{ $this->redirect(‘index’); }
©  株式会社 一六社 Ajax 通信時の処理例 処理結果を返却するとき view に値を渡さずコントローラで出力でも OK 。。 $this->AutoRender = false; echo “hoge”; exit;
©  株式会社 一六社 実際のソースを見てみる 今までのことを踏まえてサンプルのソースを見てみる。
©  株式会社 一六社 おしまい 参考 ・ CookBook ( http://book.cakephp.org/ ) ・ CakePHP ガイドブック

Cakephp Ajax

  • 1.
    CakePHP で Ajax ©  株式会社 一六社 入門編 発表者  MICK http://mick.blog16.jp/
  • 2.
    ©  株式会社 一六社 はじめにCakePHP の Ajax ヘルパーを利用する prototype.js を使う JavaScript の記述がシンプルになる 1.1 系と 1.2 系の両方の話 ◇ Prototype.js -> Sam   Stephenson 氏が提供するサイトから取得できる。 http://www.prototypejs.org/download
  • 3.
    ©  株式会社 一六社 動作サンプル実際のソース等を見る前に、 本日の宿題をみて頂きます。
  • 4.
    ©  株式会社 一六社 データの流れと処理index ( URL の登録) conversion   ( RSS フィードを検出⇒内容取得など) レスポンスを出力 記事の出力 エラー出力 ① 非同期通信 ② 処理結果の返却
  • 5.
    ©  株式会社 一六社 最初にすることAjax ヘルパーを使うために prototype.js を js ディレクトリへ配置 使用するレイアウトで prototype.js を読み込む echo $javascript->link('prototype'); Controller    var $helpers = array('Ajax‘); var $components = array('RequestHandler');
  • 6.
    ©  株式会社 一六社 書き方(アクション)今回は Ajax ヘルパーの form メソッドを利用して、画面遷移のない形で送信を行う。 第1引数には、フォームの送信先(アクション) 第2引数には、フォームの送信方式を指定(未設定は post ) 第 3 引数はオプション。 echo $ajax->form("conversion/", "post", $options);
  • 7.
    ©  株式会社 一六社 ヘルパーオプションAjax ヘルパーの各メソッドでは、共通で利用するオプションがある。 ※ 今回使った設定したオプション $options[‘update’] Ajax 操作の結果で更新したい DOM ID $options[‘loading’] リモートドキュメントのデータが読み込まれている時に実行されるJSコード $options[‘complete’] XmlHttpRequest が完了した時に呼ばれるコード ※ その他のオプションはマニュアルを参照して下さい
  • 8.
    ©  株式会社 一六社 コントローラ処理例データを受け取ったコントローラでの処理例。 ・ ajax 呼ばれたかどうか if( $this->RequestHandler->isAjax() ){ $this->layout = “ajax”;// レイアウトの指定 //== 処理 ==// }else{ $this->redirect(‘index’); }
  • 9.
    ©  株式会社 一六社 Ajax通信時の処理例 処理結果を返却するとき view に値を渡さずコントローラで出力でも OK 。。 $this->AutoRender = false; echo “hoge”; exit;
  • 10.
    ©  株式会社 一六社 実際のソースを見てみる今までのことを踏まえてサンプルのソースを見てみる。
  • 11.
    ©  株式会社 一六社 おしまい参考 ・ CookBook ( http://book.cakephp.org/ ) ・ CakePHP ガイドブック