У меня есть некоторые проблемы с моим кодом при получении данных динамически с помощью сценария ajax laravel - PullRequest
0 голосов
/ 13 мая 2019

Я работаю над проектом, мне нужна кнопка «загрузить больше», я попробовал следующий код, но я думаю, что что-то не так.

есть кнопка «Загрузить больше» при нажатии просмотреть все еще некоторые результаты должны отображаться.по щелчку посмотреть все он вызывает метод контроллера, но я думаю, что я не могу отправить данные в метод контроллера, что я получу из ответа ajax.

здесь следующеемой код, который я попробовал.

Вид

<div class="form-group border-bottom pb-3">
                <label for="usr" class="f-14 bold black">Manufacturers</label>

                <div class="pl-md-4 pl-2">
                    {{count($leedManufacturers)}}
                    <label class=" my-checkbox gry2">Show All Manufacturers
                        <input type="checkbox">
                        <span class="checkmark"></span>
                    </label>
                    @if(count($leedManufacturers) > 0 )
                    @foreach($leedManufacturers as $leedsManufacturer)
                    {{-- @foreach($leedManufacturers as $leedsManufacturer)  --}}

                    <label class=" my-checkbox gry2" id="manufacturer">{{str_limit($leedsManufacturer['name'], 300)}}
                            <input type="checkbox">
                            <span class="checkmark"></span>
                        </label>
                        {{-- for load more script --}}
                    {{-- <input type="hidden" id="row" value="0"> --}}

                    {{-- <input type="hidden" id="all" value="{{$total_manufacturers}}"> --}}
                    @endforeach
                    @endif

                    <a class="load-more" id="load" href="#" class="f-14 bold">See All</a>

                    <input type="hidden" id="row" value="0">
                    <input type="hidden" id="all" value="{{count($leedManufacturers)}}">


                </div>
            </div>

Скрипт

 <script type="text/javascript">
        $(document).ready(function(){

        // Load more data
        $('.load-more').click(function(){
            var row = Number($('#row').val());
            var allcount = Number($('#all').val());
            var rowperpage = 3;
            row = row + rowperpage;

            if(row <= allcount){
                $("#row").val(row);

                $.ajax({
                    url: "{{url('GuestController/colabrativetwo')}}",
                    type: 'post',
                    data: {row:row},

                    success: function(data){

                        alert(data);

                    }


                });

            }else{

                console.log('if is not working');



            }

        });

        });
</script>

Контроллер:

public function colabrativetwo(Request $request, $slug = 0, $division_id = 0, $section_id = 0, $manufacturer_id = 0, $list=""){

$row = $request->row;
      $manufacturersFeatured = Product::select('manufacturers.id AS id', 'manufacturers.name AS name', DB::raw('COUNT(DISTINCT products.id) as products_count'))
                ->whereIn('products.status', ['active'])
                ->where(function ($query) {
                    $query->where('products.low_emitting_material_prerequisite_file', '!=', '');
                })
                ->where('users.user_type', 'manufacturer_paid')
                ->leftJoin('products_selected_leeds', 'products.id', '=', 'products_selected_leeds.product_id')
                ->leftJoin('sections', 'products.section_id', '=', 'sections.id')
                ->leftJoin('divisions', 'products.division_id', '=', 'divisions.id')
                ->join('manufacturers', 'products.manufacturer_id', '=', 'manufacturers.id')
                ->join('users', 'manufacturers.user_id', '=', 'users.id')
                ->orderBy('name', 'asc')
                ->groupBy('manufacturers.id')
                ->limit($row)
                ->get();


 return view('guest::new_design_frontend.product-library', $manufacturersFeatured);}

1 Ответ

0 голосов
/ 13 мая 2019

Попробуйте добавить csrf_token в заголовок.И использовать его в вызове ajax.

$.ajax({
    url: "{{url('GuestController/colabrativetwo')}}",
    type: 'post',
    headers: {
         'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
    },
    data: {row:row},
    success: function(data){
        alert(data);
    }
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...