我有一个带有表和分页的视图,但是当我使用de pagination时,视图是重复的。
我的控制器功能:
public function index()
{
$items = Items::where('active', '=', 1)->paginate(5);
if (Request::ajax())
{
return View::make('app/items.index')->with('items', $items)->render();
}
else
{
return view('app/items.index', array('items' => $items));
}
}
我的jquery:
function pagination()
{
$(document).on("click", ".pagination a", function(e)
{
e.preventDefault();
alert($(this).attr('href'));
$.ajax({
url: $(this).attr('href'),
})
.done(function(data)
{
console.log(data);
$('#listSearchItems').html(data);
});
});
}
我的观点:
@section('content')
<div class="header"></div>
<div id="listSearchItem" class="content">
<table>
</table>
@if($items->render())
<nav class="pagination">
<a href="{{$items->previousPageUrl()}}">
<i class="material-icons">arrow_back</i>
</a>
<a href="{{$items->nextPageUrl() }}">
<i class="material-icons">arrow_forward</i>
</a>
</nav>
@endif</div>@stop
当我点击分页按钮时,视图代码全部重复,表信息被更新,但也添加了所有现有的html视图,重复代码。
任何人都可以帮助我吗?我已经搜索了很多关于这个问题的内容,我不知道如何在控制器中返回信息。
感谢&#39; S
答案 0 :(得分:1)
您的代码存在一些问题。 首先为什么需要ajax来渲染数据?
如果你需要使用ajax渲染数据,你的控制器应该是这样的:
public function index()
{
$items = Items::where('active', '=', 1)->paginate(5);
if (Request::ajax())
{
$datas = $items->items();
$results = '';
foreach ($datas as $item) {
$results .="<tr><td>{$item->whateverInYourTable}</td><td>{$item->whateverInYourTable}</td></tr>"
}
return $results;
}
else
{
return view('app/items.index', array('items' => $items));
}
}
如果你不需要ajax控制器应该是这样的:
public function index()
{
$items = Items::where('active', '=', 1)->paginate(5);
return view('app.items.index', array('items' => $items));
}
像这样看:
<nav class="pagination">
{!! $items->render() !!}
</nav>