我使用的是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");