2011-08-03 9 views
1

私のアプリではモーダルを利用したいので、jQueryのUIダイアログを使用します(他に誰かより良い提案がない限り)。可能であれば、すべてのモーダルコンテンツをCakePHPフレームワーク内に厳密に保持することを望んでいましたが、これをどうやって行うのかは分かりません。CakePHP - CakeのMVC構造に準拠したjQueryモーダル

/controllers/_modalsのコントローラと/view/_modalsのコントローラを使用するモーダルをどのように起動させ、モーダルを含むAjaxコールによるケーキのフレームワークにはまだアクセスできますか?

答えて

1

モーダルボックスにコンテンツを表示するだけで、別のモデルやコントローラを作成しないでください。

あなたのユーザーのショッピングカートをモデルに表示したい場合は、それを気にする人はUsersControllerです。つまり、同じ情報ですが、異なる方法で表示されます。

だから、私はこのようなことをします。私はコントローラーをそのままにしておきたいと思います。たとえば、ショッピングカートが何であるかを見たい場合は、そのアクションにajax呼び出しを行い、レイアウトを表示しません。

だから、あなたがUserController:

class UsersController... { 
    function shoppingCart(){ 
    //doing some stuff... 
    $this->layout=null; 
    //here you could use $this->render(); but it's not necessary 
    } 
} 

そして、あなたのビューで、あなただけの(jqueryのを使用して)AJAX呼び出しを行います。

<?php $shoppingCartUrl = $this->Url(array('controller'=>'users','action'=>'shoppingCart')); 

$.ajax({ 
    url: $shoppingCartUrl, 
    context: document.body, 
    success: function(data){ 
    $("#modal").html(data) 
    } 
}); 

は、それが動作願っています。