简体   繁体   中英

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

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

你只需要重新加载想要看到变化的div,成功就这样:

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM