如何使用ajax重新加载我的页面内容(使用Laravel View/Layout)


How to reload the content of my page with ajax (Using Laravel View/Layout)

我使用的是Laravel 4,

我想重新加载视图并更改内容(基本上更改语言)

当我到达索引时:在我的控制器上:

public function getIndex()
    {
        $lang = $this->retrieveLang("FR");
        $this->layout->content = View::make('cv.cv', array('lang' => $lang));
    }

内容扩展布局

@extends('layout.cvlayout')
@section('content')

我的ajax功能:

    <script>
    $(".changeLang").click(function(event) {
        event.preventDefault();
        var url = $(this).attr("href");
        $.ajax({
            url: url,
            cache: false,
            beforeSend: function() {
                $(".loaderOverlay").fadeIn();
            },
            success: function(html) {
                $("#container").html(html);
                $(".loaderOverlay").fadeOut();
                pageCvInit();
                initAjaxHeadline();
            }
        });
    });
    </script>

url可能是***/fr,因此在控制器中有一种类似的方法:

public function getFr() { $lang = $this->retrieveLang("FR"); return View::make('cv.cv', array('lang' => $lang)); }

我试着给设置一个条件

@extends() @section() @stop

部分,但每次调用ajax函数时,整个主体都会经过ajax方法(甚至是标记),我只想重新加载主体。

我该怎么做?非常感谢

不知道ajax传递的整个主体是什么意思,只想重新加载主体。

尝试在成功时更改以过滤掉收到的html的正文。

success: function(html) {
    $("#container").html($(html).filter('body').html());
    $(".loaderOverlay").fadeOut();
    pageCvInit();
    initAjaxHeadline();
}

您只需要重新加载您想要查看更改的div,成功后放入:

$("#mydiv").load(location.href + " #mydiv");