Мы используем 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
Laravel 8 Product Ajax Поиск проблемы поиска ⇐ Jquery
Программирование на jquery
1738667826
Гость
Мы используем Laravel 8 для электронной коммерции. Встроенные поисковые запросы в категориях продуктов, тегах, названии продукта, SKU и брендах. И его буферизация так много для появления результата. И после появления результата его снова автоматически запрашивают. И результаты поиска не остаются, если я размесчу пространство после поиска ключевым словом, то он появится точный результат. p>
Я вставлю полный код для поиска здесь: < /p>
[b] 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+'"[/b]');
$('.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");
}
}
[b] контроллер поиска: [/b]
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';
}
Подробнее здесь: [url]https://stackoverflow.com/questions/70564206/laravel-8-product-ajax-search-issue[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия