1

我一直在使用 CakePHP,但遇到了以下问题。我有一个管理页面(AdminsController),有 1 个视图和 1 个方法,索引。索引视图包括到其他控制器和视图的硬编码链接。我确实为所有这些链接分配了一个类,以在管理内容上加载一个 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;
});

现在,在页面控制器的其中一个视图pages / overview中,我对同一控制器中的另一个方法update_menu进行了 ajax 调用。这种方法也有观点。这是我的控制器/方法中目前的内容。

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');
            }
        }
    }

Admin 控制器有一个Admin布局,概述也有。这就是我尝试从 update_menu 获取数据时发生的情况。(在 $(document).ready(function(){}); 里面)

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

函数 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

问候,伤害。

4

2 回答 2

0

将您的布​​局设置为 ajax 布局:

$this->layout = "ajax";

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

public $components = array(
    "RequestHandler"
);
于 2012-05-15T13:31:31.777 回答
0

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

$this->layout = null;
于 2012-05-15T18:26:03.587 回答