dtr87341
2015-02-26 19:13
浏览 135

如何使用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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dtz55359 2015-02-26 19:38
    已采纳

    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();
    }
    
    已采纳该答案
    打赏 评论
  • dongyi6845 2015-02-26 19:29

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

    $("#mydiv").load(location.href + " #mydiv");
    
    打赏 评论

相关推荐 更多相似问题