簡體   English   中英

如何使用ajax重新加載我的頁面內容(使用Laravel視圖/布局)

[英]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方法(甚至是標簽),我只想重新加載身體。

我該怎么做呢? 非常感謝

你只需要重新加載想要看到變化的div,成功就這樣:

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

不知道你的意思是整個身體經過ajax並且你只想重新裝載身體。

嘗試更改您的成功以過濾掉收到的HTML的正文。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM