0

私のcakephpアプリケーションは、別のビューからコンテンツをロードしているオーバーレイをいじっているようです。これは次のように機能します。

//Show project settings
$(document).ready(function(){
    $('.project-edit').on('click', function () {
        overlay_start('projects/show_project_settings');
    });
});

//Function for overlay
function overlay_start(path) {
    $('#overlay-center').load(path);
    $('#overlay').fadeIn(200);
    $('#overlay-center').fadeIn(200);
}

これは私のProjectsControllerのメソッドです:

//Display project settings overlay
public function show_project_settings() {
    $this->render('/Elements/editable/ProjectSettings');
}

私はプロジェクト/インデックスを使用しており、リンクをクリックするとオーバーレイが読み込まれます。実際にはロードされますが、ProjectSettings.ctpではなく、私がすでに使用しているのと同じビューをロードするだけです。

何かが私にプロジェクトコントローラーに何かが欠けていることを教えてくれます。私は何が間違っているのですか?

4

2 に答える 2

0

次のように、Htmlヘルパーを使用してURLを作成します。

$(document).ready(function(){
    $('.project-edit').on('click', function () {
        overlay_start('".$this->Html->url(array('action' => 'show_project_settings'))."');
    });
});

私はあなたが同じコントローラーにいると仮定しています、そうでなければコントローラーパラメーターを追加してください

$this->Html->url(array('controller' => 'your_controller', 'action' => 'show_project_settings'))
于 2013-01-09T09:47:01.370 に答える
0

私は問題が何であるかを知りました。私の道は次のことにつながっていました:

.../admin/projects/show_project_settings

しかし、代わりに次のことにつながるはずです:

.../projects/show_project_settings

だから私がしたのは

overlay_start( $.gdUrl().root() + 'projects/show_project_settings' );

そして、それは正しい道を歩みました。

認証の問題ではありませんでした。

于 2013-01-09T20:45:30.553 に答える