【发布时间】:2016-08-14 19:23:28
【问题描述】:
我在应用的主页中添加了一个 ajax 搜索框。它工作正常。但是当我在新结果出现后使用分页时,分页会将我带到旧结果。我不确定我做错了什么。因此寻求专家的帮助以获得解决方案。
我有这些在routes--
Route::get('/', 'BookmarkController@index');
Route::post('/', 'BookmarkController@search');
我在他们的控制器中有这些 -
public function index(Request $request)
{
$tags_list = Tag::orderBy('tag', 'asc')->get();
$bookmarks = Bookmark::orderBy('created_at','desc')->where('public', '1')->paginate(10);
$bookmarks_all = Bookmark::orderBy('created_at','desc')->where('public', '1')->get();
return view('welcome')->with('bookmark', $bookmarks)->with('tags_list', $tags_list)->with('bookmarks_all', $bookmarks_all);
}
public function search(Request $request){
$search_value = $_POST['search'];
$bookmarks = Bookmark::orderBy('created_at','desc')->where('public', '1')->where('title', 'rlike', $search_value)->orwhere('description', 'rlike', $search_value)->orwhere('contents', 'rlike', $search_value)->orwhere('tags', 'rlike', $search_value)->paginate(10);
return view('public_bookmarks')->with('bookmark', $bookmarks);
}
在welcome.blade.php
<div class="container content-container">
<div class="row ">
<div class="col-sm-12">
<div class="page-header">
<div class="row">
<span class="title col-sm-8">Recent Bookmarks</span>
<form id="demo-2" class="search-form col-sm-4" method="post">
{{ csrf_field() }}
<div class="input-group">
<!-- <input id="search" class="form-control" onkeyup="search_data(this.value, 'result');" placeholder="Search" name="search" value="" type="text"> -->
<input id="search" class="form-control" placeholder="Search" name="search" value="" type="text">
<span class="input-group-btn">
<button class="btn btn-primary" id="search-btn" type="button"><i class="fa fa-search"></i></button>
</span>
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#search-btn').click(function(){
$.ajax({
url: '/',
type: "post",
data: {'search':$('input[name=search]').val(), '_token': $('input[name=_token]').val()},
success: function(data){
$('#search-results').html(data);
},
error: function (data) {
console.log('Error on Article extracting');
console.log(data);
}
});
});
});
</script>
</form>
</div>
</div>
</div>
<div class="col-sm-9" id="search-results">
@include ('public_bookmarks')
</div>
</div>
在public_bookmars.blade.php
@if (count($bookmark) > 0)
<div class="row card-row">
@foreach ($bookmark as $bookmark_single)
<div class="col-sm-4 col-xs-12 card-parent" data-col="col-sm-4">
<div class="card">
<div class="card-part1">
<div class="img-card">
<img src="{{$bookmark_single->thumbnail}}" />
</div>
<div class="card-content">
<h4 class="card-title">
{{ $bookmark_single->title }}
</h4>
<div class="card-desc">
{{ str_limit($bookmark_single->description, $limit = 50, $end = ' [...]') }}
</div>
</div>
<div class="card-read-more">
<p><?php $tags = $bookmark_single->tags;
$tag_list = explode(',', $tags); ?>
@foreach ($tag_list as $tag)
<a href="/tag/{{$tag}}" class="label label-primary">{{$tag}}</a>
@endforeach
</p>
<p class="card-user">- <a href="/user/{{ $bookmark_single->bookmarker }}">{{ $bookmark_single->bookmarker }}</a></p>
<a class="v-link" target="_blank" href="{{ $bookmark_single->url }}">Visit the link</a>
</div>
<button type="button" class="btn btn-success btn-circle btn-lg btn-read-more"><i class="fa fa-chevron-right"></i></button>
</div>
<div class="card-part2 col-xs-0">
{{ print $bookmark_single->contents }}
</div>
</div>
</div>
@endforeach
</div>
{{ $bookmark->links() }}
@endif
【问题讨论】:
标签: php pagination laravel-5.2