Ext JS に関しては,新しい記事は Sunvisor Lab. ExtJS 別館 にあります。そちらもよろしくお願いいたします。
ExtJSとCakePHPデータやりとり
CakePHPでのURLは,
site.com/コントローラー名/アクション名/パラメータ1/パラメータ2
という形式だから,
ExtJSからデータが欲しいときは,この形式でリクエストする。
それに対して,JSON形式でデータを返すViewでも作れば,CakePHPとExtJSの間でデータのやりとりができそう。
必要なパラメータと一緒にAjax.requestでリクエストする。
ExtJSでは,データストアのHttpProxyでURLを指定してやるとよいらしい。データストアは,ADOでいうDataSetみたいなものか。
cakePHP+ajaxでjsonを扱う - 憂鬱なプログラマの形而上学
CakePHPからJSONやXMLを返す方法は,Webserviceコンポーネントを入れるととても簡単らしい。
[CakePHP]actionの応答をXMLやjsonに切り替える超簡単な方法 | Ryuzee.com
たとえばコンボボックスにリストをセットするとき
- サーバーのコントローラーに対して,Ajax.requestでデータをリクエストする。
- CakePHPがそれに反応してデータをJSONで返す。
- 返ってきたJSONデータをコンボボックスのリストにセットする。
という感じか。
- まず,ホームではExt.OnReadyでViewPortを描画する。
- ViewPortのそれぞれのペインは,コントローラーなどで用意する。
- ExtJSのイベントで,CakePHPのコントローラーにURLを投げて画面を更新する。
というような流れになるのかな。CakePHPのビューのほとんどはページをレンダリングするよりも,Ajaxでパーツを渡すとかJSONやXMLdeでデータを渡すような感じになるのかな。
CakePHPのホームってルーティングでコントローラーとアクションが定められていて,そのページが表示される。デフォルトでは,pagesコントローラーのhomeアクション。つまり,pages_controller.homeのonReadyがプログラムの始まりか。
CakePHPサイトでのExtJSの置き場所は,webroot/jsでいいのかな。 そしてコントローラーにvar $helpers = array('Javascript');
var $helpers = array('Javascript');
と書いて,ビューで
<?php echo $javascript->link('test'); ?>
というふうにする。というけれど,1.3ではJavascriptヘルパーが非推奨になったのじゃなかったか。かわりにHtmlヘルパーのjsメソッドというのがあるとか。マニュアルには,$javascript->link()は $html->script()にと書いてる。だから
<?php echo $html->script('test'); ?>
かな。
トラックバック
人気のあるページ
- Robocopyでフォルダをコピー
- Robocopy よく使うオプション
- Active Directoryのユーザ管理 (1)
- SQL Server で文字列の半角/全角変換
- SQL Server 2005からリンクテーブルでOracleに接続する
- Windowsサーバでのレプリケート失敗を解決
- LDAP認証とActive Directory
- SQL Server 2005のデータベースコピーウィザードを使う
- WebClientサービスをポリシーで止める
- ログオン時にドライブやプリンタを割り当てる
- ログオン,ログオフ状況を記録するスクリプト
- 設定系スクリプト実行時にUACに邪魔されるのを回避する
