Laravel 8 Product Ajax Поиск проблемы поискаJquery

Программирование на jquery
Ответить
Гость
 Laravel 8 Product Ajax Поиск проблемы поиска

Сообщение Гость »

Мы используем Laravel 8 для электронной коммерции. Встроенные поисковые запросы в категориях продуктов, тегах, названии продукта, SKU и брендах. И его буферизация так много для появления результата. И после появления результата его снова автоматически запрашивают. И результаты поиска не остаются, если я размесчу пространство после поиска ключевым словом, то он появится точный результат. p>
Я вставлю полный код для поиска здесь: < /p>
fecult ajax function: < /strong> < /p>
$('#search').on('keyup input change', function(){
search();
});

$('#search').on('focus', function(){
search();
});

function search(){
var searchKey = $('#search').val();
if(searchKey.length > 0){
$('body').addClass("typed-search-box-shown");

$('.typed-search-box').removeClass('d-none');
$('.search-preloader').removeClass('d-none');
$.post('{{ route('search.ajax') }}', { _token: AIZ.data.csrf, search:searchKey}, function(data){
if(data == '0'){
// $('.typed-search-box').addClass('d-none');
$('#search-content').html(null);
$('.typed-search-box .search-nothing').removeClass('d-none').html('Sorry, nothing found for "'+searchKey+'"
');
$('.search-preloader').addClass('d-none');

}
else{
$('.typed-search-box .search-nothing').addClass('d-none').html(null);
$('#search-content').html(data);
$('.search-preloader').addClass('d-none');
}
});
}
else {
$('.typed-search-box').addClass('d-none');
$('body').removeClass("typed-search-box-shown");
}
}

контроллер поиска:
public function ajax_search(Request $request)
{
$keywords = array();
$products = Product::where('published', 1)->where('name', 'like', '%'.$request->search.'%')->get();
foreach ($products as $key => $product) {
foreach (explode(',',$product->name) as $key => $tag) {
if(stripos($tag, $request->search) !== false){
if(sizeof($keywords) > 4){
break;
}
else{
if(!in_array(strtolower($tag), $keywords)){
array_push($keywords, strtolower($tag));
}
}
}
}
}

$products = filter_products(Product::query());

$products = $products->where('published', 1)
->where(function ($q) use($request) {
$q->where('name', 'LIKE', '%'.$request->search.'%');
})
->get();

// $categories = Category::where('name', 'like', '%'.$request->search.'%')->get()->take(3);

// $shops = Shop::whereIn('user_id', verified_sellers_id())->where('name', 'like', '%'.$request->search.'%')->get()->take(3);

if(sizeof($keywords)>0 || sizeof($products)>0){
return view('frontend.partials.search_content', compact('products', 'keywords'));
}
return '0';
}


Подробнее здесь: https://stackoverflow.com/questions/705 ... arch-issue
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»