laravel中用ajax實現分頁顯示

來源:互聯網
上載者:User

標籤:sep   erro   text   check   parent   tween   checkbox   ebe   json   

1、page.blade.php   這個檔案可以單獨拿出來儲存,以後很多項目中可以複用

@if ($paginator->total())
<ul class="pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li><span>?</span></li>
<li><span>?</span></li>
@else
<li><a href="javascript:;" data-page="1">?</a></li>
<li><a href="javascript:;" data-page="{{ $paginator->currentPage() - 1}}">?</a></li>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li><span>{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li><span>{{ $page }}</span></li>
@else
<li><a href="javascript:;" data-page="{{ $page }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li><a href="javascript:;" data-page="{{ $paginator->currentPage() + 1}}">?</a></li>
<li><a href="javascript:;" data-page="{{ $paginator->lastPage() }}">?</a></li>
@else
<li><span>?</span></li>
<li><span>?</span></li>
@endif
</ul>
@endif

首先儲存這個php檔案至目錄view下建立common檔案夾下

2、laravel路由部分:

Route::get(‘/article-list‘, ‘View\[email protected]‘);

Route::any(‘/admin/search‘, ‘View\[email protected]‘);

3、articlecontroller.php部分

use Illuminate\Contracts\Pagination\Paginator;

public function articleList(){
$category = Category::all()->toArray();
return view(‘admin.article-list‘)->with(‘category‘,$category);
}

public function search(Request $request){
$stime = $request->input(‘logmin‘);
$etime = $request->input(‘logmax‘);
if(empty($stime) || empty($etime)){                    //起始時間或者終止時間二者有任一個為空白,就展現最近一個月的資料
$stime = date(‘Y-m-d‘,strtotime(‘-1 month‘));
$etime = date(‘Y-m-d‘,time()+86399);
}
$articlecolumn = $request->input(‘articlecolumn‘);
$searchname = $request->input(‘searchname‘);
if($request->input(‘init‘)===‘init‘){      //如果是初始載入的情況
$articles = DB::table(‘articles‘)         
->join(‘category‘,‘articles.cateid‘,‘=‘,‘category.id‘)
->select(‘articles.*‘,‘category.name‘)
->whereBetween(‘articles.updated_at‘, [$stime, $etime])
->paginate(10);
}else{
$articles = DB::table(‘articles‘)
->where(function($query) use($articlecolumn){
$query->where(‘cateid‘,$articlecolumn)
->orWhere(‘parentid‘,$articlecolumn);
})
->join(‘category‘,‘articles.cateid‘,‘=‘,‘category.id‘)
->select(‘articles.*‘,‘category.name‘)
->where(‘title‘,‘like‘,‘%‘.$searchname.‘%‘)
->whereBetween(‘articles.updated_at‘, [$stime, $etime])
->paginate(10);
}
$data = $articles->toArray();
$link = $articles->links(‘common.page‘)->toHtml();
return response()->json(compact(‘data‘,‘link‘));
}

4、前台html部分

<div class="mt-20">
<table class="table table-border table-bordered table-bg table-hover table-sort">
<thead>
<tr class="text-c">
<th width="25"><input type="checkbox" name="" value=""></th>
<th width="80">ID</th>
<th>標題</th>
<th width="80">分類</th>
<th width="120">更新時間</th>
<th width="75">瀏覽次數</th>
<th width="60">發布狀態</th>
<th width="120">操作</th>
</tr>
</thead>
<tbody id="tb"></tbody>
</table>
<input type="hidden" id="page" value="1">
<div id="Paging"></div>
</div>

5、前台js部分

$(‘#search‘).click(function(){
//獲得分類id
var articlecolumn = $(‘select[name=articlecolumn]‘).val();
//獲得搜尋的文章名
var searchname = $(‘input[name=searchname]‘).val();
//獲得日期範圍最小值
var logmin = $(‘input[name=logmin]‘).val();
//獲得日期範圍最大值bu
var logmax = $(‘input[name=logmax]‘).val();
var page = $(‘#page‘).val();
var params = {page:page,articlecolumn:articlecolumn,searchname:searchname,logmin:logmin,logmax:logmax}
articleList(params);
});

$(function(){
//獲得分類id
var articlecolumn = $(‘select[name=articlecolumn]‘).val();
//獲得搜尋的文章名
var searchname = $(‘input[name=searchname]‘).val();
//獲得日期範圍最小值
var logmin = $(‘input[name=logmin]‘).val();
//獲得日期範圍最大值bu
var logmax = $(‘input[name=logmax]‘).val();
var page = $(this).attr(‘data-page‘);
var params = {init:‘init‘,page:page,articlecolumn:articlecolumn,searchname:searchname,logmin:logmin,logmax:logmax}
articleList(params);
})
//分頁
$(‘#Paging‘).on(‘click‘, ‘li a‘,function(){
//獲得分類id
var articlecolumn = $(‘select[name=articlecolumn]‘).val();
//獲得搜尋的文章名
var searchname = $(‘input[name=searchname]‘).val();
//獲得日期範圍最小值
var logmin = $(‘input[name=logmin]‘).val();
//獲得日期範圍最大值
var logmax = $(‘input[name=logmax]‘).val();
var page = $(this).attr(‘data-page‘);
var params = {page:page,articlecolumn:articlecolumn,searchname:searchname,logmin:logmin,logmax:logmax}
articleList(params);
});
function articleList(params){
$.ajax({
type: ‘POST‘,
url: ‘admin/search‘,
data:params,
dataType: ‘json‘,
success: function(data){
if(data){
console.log(data.data.data);
console.log(data.link);
$(‘#Paging‘).html(data.link);
$("#tb").html("");
$("#count").html(data.length);
$.each(data.data.data, function (k, v) {
var str ="<tr class=‘text-c‘><td><input type=‘checkbox‘ value="+v.id+"name=‘duoxuan‘></td>"
+ "<td>"+v.id+"</td><td class=‘text-l‘><u style=‘cursor:pointer‘ class=‘text-primary‘ onClick=‘‘ title=‘查看‘>"
+v.title+"</u></td><td>"+v.name+"</td><td>"+v.updated_at+"</td>"
+"<td>21212</td><td class=‘td-status‘><span class=‘label label-success radius‘>發行</span></td>"
+"<td class=‘f-14 td-manage‘><a style=‘text-decoration:none‘ onClick=‘article_stop(this,"+v.id+")‘"
+" href=‘javascript:;‘ title=‘下架‘><i class=‘Hui-iconfont‘>&#xe6de;</i></a><a style=‘text-decoration:none‘"
+" class=‘ml-5‘ onClick=‘‘ href=‘../article-add/"+v.id+"‘ title=‘編輯‘><i class=‘Hui-iconfont‘>&#xe6df;</i>"
+"</a><a style=‘text-decoration:none‘ class=‘ml-5‘ onClick=‘article_del(this,"+v.id+")‘href=‘javascript:;‘‘"
+" title=‘刪除‘><i class=‘Hui-iconfont‘>&#xe6e2;</i></a></td></tr>";
$("#tb").append(str);

});
}
},
error:function(data) {
console.log(data);
},
});
}

laravel中用ajax實現分頁顯示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.