Cake PHP异步叠加渲染错误视图

时间:2013-01-08 21:10:10

标签: php jquery cakephp

我的蛋糕php应用程序似乎弄乱了我的叠加层,其中我正在从另一个视图加载内容。它的工作原理如下:

//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。

有些东西告诉我,我在项目控制器中遗漏了一些东西。我做错了什么?

2 个答案:

答案 0 :(得分:0)

使用Html助手构建网址,如下所示:

$(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'))

答案 1 :(得分:0)

我发现了问题所在。我的道路是:

.../admin/projects/show_project_settings

但应该导致:

.../projects/show_project_settings

所以我做的是

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

然后它的路径正确。

这不是身份验证问题。