Результаты поиска, чтобы показать в лезвии, используя ajax и laravel - PullRequest
0 голосов
/ 16 марта 2020

У меня есть место поиска для покупателей, чтобы искать продукт, который будет отображаться в клинке. Я использую ajax и laravel. Вот мой код столько, сколько я написал. Запрос работает хорошо, и когда я печатаю $ filter, я вижу результаты.

$('.gotosearch').on('click' , function() {
    var search = $(this).val()
    var inpvalue = $('.form-control').val()

    $.ajax({
        url:'/searchproducts',
        type:'post',
        data: {
            inpvalue,
            "_token" : token
        },
        success:function(r) {
            console.log(r)  
        }
    })
})
Route::post('/searchproducts' , 'ProductController@searchproducts');

function searchproducts(Request $search) {
    $filter = ProductModel::where('Product_Name','LIKE', $search->inpvalue.'%')->get();
}

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

попробуйте: // текст поиска

<div class="form-group">
    <input type="text" id="search" name="search" class="form-control" id="exampleInputEmail" aria-describedby="emailHelp" placeholder="Search" value="{{ old('accountNo') }}" style="font-size:20px;font-weight:bold;" required>
</div

// результат поиска

<div id="getResult" class="panel panel-default" style="width:400px; height: 150px; overflow-y:auto; position:absolute; left:50px; top:180px; z-index:1; display:none;background-color:white">
   <div id="getList"></div>
</div>

// ajax

        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        $('#search').keyup(function(){
            var search = $('#search').val();
            if(search==""){
                $('#getResult').css('display', 'none').hide();
            }
            else{
                var getQueries = "";
                $.get("{{ url('/') }}" + '/search/' + search,
                    {search:search}, 
                    function(data){
                    if(data){
                        $('#getResult').css('display', 'block');
                    }else{
                        $('#getResult').css('display', 'none')
                    }
                    if(search == ''){
                        $('#getResult').css('display', 'none').hide();
                    }else{
                       $.each(data, function (index, value){
                            var id=value.ID;
                        getQueries += '<ul style="margin-top:3px; list-style-type:none;">';
                        getQueries += '<a href={{ url("add-contribution-amount")}}' +'/'+ value.id + '>' + value.fullname +' | '+value.accountno + '</a>';
                        getQueries += '</ul>';
                        });
                            $('#getList').html(getQueries );
                    }

                })
            }
        });

</script>

// контроллер

public function CustomerSearch($getSearch){

        $search = $getSearch;
        $members = DB::table('tblcustomers')
        ->where('accountno', 'like', "%$search%")
        ->select('id','branchID', 'fullname', 'savingstype', 'accountno')
        ->orderby('id','asc')
        ->get();

        return $members;

    }

// маршрут

Route::get('/search/{searchQuerys?}',                'ContributionController@CustomerSearch');
0 голосов
/ 16 марта 2020

Вы можете использовать response()->json в своем контроллере

Согласно Laravel документации

Метод json автоматически установит заголовок Content-Type на application / json, а также преобразовать данный массив в JSON с помощью функции json_encode PHP:

return response()->json([
    'name' => 'Abigail',
    'state' => 'CA'
]);

Попробуйте это:

return response()->json($filters->toArray());

https://laravel.com/docs/5.8/responses#json -responses

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...