如何使用ajax重新加载我的页面内容(使用Laravel视图/布局)

I'm using Laravel 4,

I want to reload a view and change the content (Basically change the langage)

When I arrive on the index : On my controller :

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

The content extend the layout

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

My ajax function :

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

the url may be ****/fr so in the controller there is a method like that :

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

I tried to put a condition on the

@extends() @section() @stop

part, but every time the ajax function is called, the whole body passes by the ajax method (even the , tags) and I just want to reload the body.

How do I do this? Many thanks

Not sure how you mean by the whole body passes by ajax and you just want to reload the body.

Try changing your on success to filter out the body of the received html.

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

You only need to reload the div you want that see the changes, in success put this:

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