gpt4 book ai didi

php - 使用ajax分页获取查询字符串

转载 作者:行者123 更新时间:2023-12-04 15:37:28 24 4
gpt4 key购买 nike

我知道当你添加类似 ->appends(['location' => $search]) 的查询时。当您使用分页时,它甚至会将搜索查询保存到下一页。现在我正在使用 ajax 进行分页,我有这个 js 代码

<script type="text/javascript">

//Pagination part
$('.main-section').on('click', '.pagination > li > a', function (event) {
var page = $(this).text();
event.preventDefault();
if ($(this).attr('href') != '#') {
$("html, body").animate({scrollTop: 0}, "slow");
$.request('onFilterProduct', {
data: {page: page},

});
}
});
</script>

我的 php block 有这个

function onFilterProduct(){

$slug = $this->param('slug');
$search = Input('location');

$this['ads'] = Advert
::withCount(['ratings as rating' => function ($query) {
$query->select(DB::raw('COALESCE(avg(rating), 0)'));
}])
->whereHas('cats', function ($query) use ($slug){
$query->where('slug',$slug);
})->where('location', 'LIKE', "%{$search}%")
->orderBy('created_at','desc')->paginate(1)->appends(['location' => $search]);
return [
'#product-list' => $this->renderPartial('product-filter-partial')
];


}

一切正常,当我加载第一页时获得正确的页码,但是当我点击第二页时,它会重置所有内容并且分页不再适用于位置查询字符串。请问我该如何解决这个问题。

最佳答案

终于找到了一个解决方案,可以使用 javascript pushState api 来更新页面 url 而无需重新加载

 history.pushState(null, null, $(this).attr('href')); 

所以我的 js 代码现在看起来像这样

<script type="text/javascript">

//Pagination part
$('.main-section').on('click', '.pagination > li > a', function (event) {
var page = $(this).text();
event.preventDefault();
if ($(this).attr('href') != '#') {

// Update the browser's address bar
history.pushState(null, null, $(this).attr('href'));

$("html, body").animate({scrollTop: 0}, "slow");
$.request('onFilterProduct', {
data: {page: page},

});
}
});
</script>

关于php - 使用ajax分页获取查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59295471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com