У меня есть эта функция для моего поиска, и она возвращает результаты снова и снова
Контроллер
function search(Request $request)
{
$q = $request->input('searchinput');
if($q != ''){
$links = Link::where('status', '1')
->where('name','LIKE', "%{$q}%")
->orWhere('body','LIKE',"%{$q}%")
->paginate(6);
if ($request->ajax()) {
$view = (String) view('front.links.more',compact('links'));
return response()->json(['html'=>$view]);
}
return view('front.search.index', compact('links', 'q'))->withQuery($q);
}else{
Session::flash('warning', 'You need to fill search field.');
return redirect()->back();
}
}
форма
<form class="form-inline" action="{{route('searchin')}}">
@csrf
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search" name="searchinput">
</form>
Маршрут
Route::any('search', 'Front\SearchController@search')->name('searchin');
JavaScript
<script defer>
$(function(){
var page = 1;
loadMoreData(page);
function loadMoreData(page){
var isotopShowmoreJs = $('.LOADBTN'),ttAddItem = $('.tt_job_listing');
if (isotopShowmoreJs.length && ttAddItem.length) {
isotopShowmoreJs.on('click', function(e) {
page++;
e.preventDefault();
$.ajax({
url: '?page=' + page,
type: "get",
beforeSend: function(){
$('.ajax-load').show();
$('.spinner-border').show();
}
}).done(function(data){
if(data.html == ""){
$('.LOADBTN').hide();
$('.spinner-border').hide();
$('.tt_item_all_js').css('display', "block");
}
var $item = $(data.html);
ttAddItem.append($item);
adjustOffset();
}).fail(function(jqXHR, ajaxOptions, thrownError){
alert('server not responding...');
$('.spinner-border').hide();
$('.LOADBTN').hide();
});
function adjustOffset(){
var offsetLastItem = ttAddItem.children().last().children().offset().top - 80;
var $body = $('body');
var $html = $('html');
$($body, $html).animate({scrollTop: offsetLastItem}, 500);
$('.spinner-border').hide();
};
return false;
});
};
}
});
</script>
Скриншот

Видео
https://streamable.com/qwh34
Есть идеи?
обновление до Aditya Thakur
комментарий
сеть

консоль console.log(page++);

консоль console.log(page);

Обновление 2
dd($request->all());
array:2 [▼
"_token" => "eNio8rDaCL2du4I7KAzt5UU3ukrvHHnco3x2orUp",
"searchinput" => "test"
]
dd($request->ajax());
возврат true
dd($request->input('page'));
возврат null
Обновление 3
Dan's response
удаление, если условие в моем контроллере удалило второй запрос ajax и исправило некоторые части.
Sandeep Sudhakaran
ответ,
вот мой последний результат после удаления условия if. PS: я пометил дублированные данные.

Обновление 4
кнопка загрузки
@if(count($results)>0)
<div class="row">
<div class="col-md-12 mt-5 mb-5 text-center">
<div class="row">
<div class="col-12 text-center">
<a href="#" class="btn btn-primary LOADBTN">
<div class="spinner-border" style="display: none;" role="status">
<span class="sr-only">{{__('links.loading')}}</span>
</div>
{{__('links.loadmore')}}
</a>
<div class="tt_item_all_js" style="display:none;">
<button type="button" class="btn btn-secondary btn-3" disabled>{{__('links.nomore')}}</button>
</div>
</div>
</div>
</div>
</div>
@endif