我使用Bootstrap做一个Laravel站点。在我的用户页面中,我有两个选项卡,“产品”和“关注者”,但对于第二个选项卡,“关注者”,我进行分页,当我尝试更改分页页面时,所有页面都重新加载,并且回到第一个标签“产品”。
我在stackoverflow上尝试了一些解决方案,但我从未成功过。
这是我的观点
@section('contenu')
<section class="panel col-lg-8 col-sm-8 m-t-large">
<header class="panel-heading m-l-n m-r-n">
<ul class="nav nav-tabs pull-right">
<li class="active"><a href="#product" data-toggle="tab"><i class="icon-list icon-large text-default"></i>Mes produits en cours de partage</a></li>
<li><a href="#follow" data-toggle="tab"><i class="icon-group icon-large text-default"></i>Mes abonnés</a></li>
</ul>
<span class="hidden-sm">Fiche technique du frigo</span>
</header>
<div class="panel-body">
<div class="tab-content">
<div class="tab-pane active" id="product">
<div class="col-lg-3">
{{-- dd($user) --}}
<h4>{{{ $user->name }}}</h4>
@if($user->photo && File::exists(public_path().'/uploads/photos/users/'.e($user->photo)))
{{ HTML::image('uploads/photos/users/'.e($user->photo), e($user->name)) }}
@else
{{ HTML::image('template/images/avatar.jpg', e($user->name)) }}
@endif
@if($user->id!=Auth::user()->id)
@if(DB::table('user_followers')->where('user_followed', $user->id)->where('user_following', Auth::user()->id)->count()==0)
{{ HTML::decode(HTML::linkAction('UserFollowersController@follow', '<i class="icon-heart">S\'abonner</i>', array('id' => $user->id), array('class' => 'btn btn-info m-t-large m-b-small'))) }}
@else
{{ HTML::decode(HTML::linkAction('UserFollowersController@unfollow', '<i class="icon-heart">Se désabonner</i>', array('id' => $user->id), array('class' => 'btn btn-danger m-t-large m-b-small '))) }}
@endif
@endif
</div>
<div class="col-lg-9">
<h4>Le frigo contient en ce moment :</h4>
<ul class="list-unstyled">
@foreach($user->products as $product)
<li class="list-group-item bg m-b-small">
<div class="media">
@if(e($product->photo) && File::exists(public_path().'/uploads/photos/products/'.e($product->photo)))
<span class="pull-left img-product">
<a href="{{ URL::action('ProductsController@show', $product->id) }}">
{{ HTML::image('uploads/photos/products/'.e($product->photo), e($product->title), array('class' => 'img-rounded')) }}
</a>
</span>
@endif
<div class="media-body">
<div><a href="{{ URL::action('ProductsController@show', $product->id) }}" class="h4">{{{ $product->title }}}</a></div>
<p>{{{ $product->description }}}</p>
<p class="pull-left">Quantité : <span class="label label-info">{{{ $product->quantity }}}</span></p>
<p class="pull-right">Prix : <span class="badge bg-danger">{{{ $product->price }}} €</span></p>
</div>
</div>
</li>
@endforeach
</ul>
<div class="pagination">
{{-- $users->products->links() --}}
</div>
</div>
</div>
<div class="tab-pane" id="follow">
<div class="row m-b-large">
@if($user->followed!=NULL)
@foreach($user->followed as $user_followed)
<div class="panel col-lg-2 m-l-large m-t-large ">
<div class="col-lg-8 m-b-n-small col-md-offset-2 m-t-large text-center">
@if($user_followed->photo && File::exists(public_path().'/uploads/photos/users/'.e($user_followed->photo)))
{{ HTML::image('uploads/photos/users/'.e($user_followed->photo), e($user_followed->name), array ( 'class' => 'img-circle')) }}
@else
{{ HTML::image('template/images/avatar.jpg', e($user_followed->name), array ( 'class' => 'img-circle')) }}
@endif
<h3>{{{ $user_followed->name }}}</h3>
</div>
<div class="col-lg-10 m-b-small center ">
@if(DB::table('user_followers')->where('user_followed', $user_followed->id)->where('user_following', Auth::user()->id)->count()==0)
{{ HTML::decode(HTML::linkAction('UserFollowersController@follow', '<i class="icon-heart">S\'abonner</i>', array('id' => $user_followed->id), array('class' => 'btn btn-info btn-group-justified m-t-large m-b-small'))) }}
@else
{{ HTML::decode(HTML::linkAction('UserFollowersController@unfollow', '<i class="icon-heart">Se désabonner</i>', array('id' => $user_followed->id), array('class' => 'btn btn-danger btn-group-justified m-t-large m-b-small '))) }}
@endif
</div>
</div>
@endforeach
@else
<div class="panel col-lg-8 col-lg-offset-2 m-t-large">
<h4> Tu ne suis actuellement personne </h4>
</div>
@endif
</div>
<div class="col-lg-12">
{{ $user->followed->links() }}
</div>
</div>
</div>
</div>
</section>
@stop
@section('js')
{{ Basset::show('usersPaginate.js') }}
@endsection
我的控制器:
public function show($id){
// récupère les données de l'user et les produis qu'il partage
$show = $this->api->show($id);
// décode le json pour qu'il se réaffiche en array pour pouvoir l'exploiter
$json = json_decode($show->getContent());
$json->followed = User::userFollowedPaginate($id);
LaravelMixpanel::identify(Auth::user()->mixpanel_id);
LaravelMixpanel::track('User show view');
if(Request::ajax())
{
$html = View::make('users.show', $json)->render();
return Response::json(['html' => $html]);
}
return View::make('users.show')
->with('user', $json);
}
我的API /控制器:
public function show($id){
// récupère donnée de l'user et les produits qu'il échange
$data = User::with(array('products' => function($query){
$query->whereNull('shared_at');
$query->whereNull('deleted_at');
}))->findOrFail($id)->toArray();
// récupère le nb de produits qu'il échange en ce moment
$data['nbShareCurrently'] = Product::where('user_id', $id)->whereNull('shared_at')->whereNull('deleted_at')->count();
// récupère le nb de produits qu'il a échangé depuis le début
$data['nbShared'] = Product::where('user_id', $id)->whereNotNull('shared_at')->count();
return Response::json($data, 200);
}
最后我的JS:
function callAjaxUser(page) {
if(page>0) {
dataQuery = 'page=' + page;
}else{
dataQuery = '';
}
$.ajax ({
type: "GET",
url: "users",
data:dataQuery,
success: ,
error:
});
}
$(document).ready(function(){
$(' .pagination a ').click(function(event){
event.preventDefault();
callAjaxUser(Arg.parse($(this).attr('href')).page);
});
});
但我不知道这个解决方案,所以他目前是空的。