1

私は 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;
});

ページコントローラのこれらのビューの 1 つである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');
            }
        }
    }

管理コントローラには管理レイアウトがあり、概要も同様です。update_menu からデータを取得しようとすると、このようになります。($(document).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を使用します。

こんにちは、ハーム。

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 に答える