CakePHP ajax调用加载错误的布局

时间:2012-05-15 12:47:49

标签: jquery ajax cakephp menu nested

我一直在CakePHP工作,我遇到了以下问题。 我有一个带有1个视图和1个方法的管理页面(AdminsController),索引。 索引视图包括指向其他​​控制器和视图的硬编码链接。 我确实为所有这些链接分配了一个类,用于在管理内容中加载DIV以及其中的视图内容。通过这个脚本:

$(".cmsPage").click(function() {
    var url = $(this).attr("href");

    $.ajax({
        url: url,
        success: function(data){
            $("#admin_wrapper", "#admin_close", "#admin_content").fadeIn('slow');
            $("#admin_content").html(data);
        }
    });
    return false;
});

现在,在其中一个页面控制器的视图中,页面/概述我对同一控制器中的其他方法进行了ajax调用, update_menu < / strong>即可。这种方法也有一个观点。这是我的控制器/方法中现有的。

public function update_menu(){
        $this->layout = '';
        foreach($this->request->data as $menu){
            //$this->layout = 'ajax';
            foreach($menu as $id => $submenu){
                $saveData = array('id' => $id, 'submenu' => $submenu);
                $this->Page->save($saveData);
                $this->render('update_menu','ajax');
            }
        }
    }

管理控制器具有管理布局,概述也是如此。 当我尝试从update_menu获取数据时会发生这种情况。 (内部$(文件).ready(function(){});)

$("#save_page").click(function(){
    toArray();
    return false;
 });

function toArray()(在$(document).ready(function(){})之外;)

 function toArray()
{
    var serialized = $('ol.sortable').nestedSortable('serialize');
    $.ajax({
    type: 'POST',
    url: 'update_menu',
    data: serialized,
    success: function(data){
        $("#result").html('De pagina\'s zijn opgeslagen!');
    }
    });
}

我在控制台中得到的是admins/index的整个渲染。视图&安培;布局。

我需要做什么来获取视图结果而不是admins/index

有关信息,我会使用http://mjsarfatti.com/sandbox/nestedSortable/forum/categories/releases

问候, 危害。

2 个答案:

答案 0 :(得分:0)

将布局设置为ajax布局:

$this->layout = "ajax";

或者,通过在AppController中包含RequestHandler组件来自动化它:

public $components = array(
    "RequestHandler"
);

答案 1 :(得分:0)

由于这是对此的ajax调用,因此您无需在操作中加载任何布局 试试这个。

$this->layout = null;