Я пытаюсь установить флажок и хотел вернуть его на свой контроллер с помощью ajax

#php #ajax #laravel

#php #аякс #ларавель

Вопрос:

Но есть ошибка, которая говорит, что не определено, когда я поставил один из флажков. Это скриншот ошибки Изображение.

Вот мой аякс

 lt;meta name="csrf-token" content="{{ csrf_token() }}" /gt; lt;scriptgt; $(document).ready(function() {   //Add CSRF token to headers  $.ajaxSetup({  headers: {  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')  }  });  $('input[type="checkbox"]').click(function() {  var selected_item = [];  $("input:checkbox[name=selected_item]:checked").each(function() {  selected_item.push($(this).val());  });    selected_item = JSON.stringify(selected_item);  var dataString = "item=" selected_item "amp;_token=" $('input[name=_token]').val();   $.ajax({  type: "POST",  url: '{{route('select.item')}}', // Route   data: dataString,  success: function(request, status, error) {  alert(request.responseText);  },  error: function(request, status, error) {  alert(request.responseText);  }    })  }); }); lt;/scriptgt;  

Это входные данные для флажка

 lt;tdgt;  lt;input class="form-check-input cbox" type="checkbox" name="selected_item" value="{{$cart-gt;id}}" data-price="{{$cart-gt;subTotal}}"gt;lt;/inputgt; lt;/tdgt;  

Вот маршрут

 Route::post('selected-item', [PaymentTokensController::class,'selected_item'])-gt;name('select.item');  

Вот контроллер

 public function selected_item(Request $request) {  $selected_item = $request-gt;selected_item;   return $selected_item; }   

Комментарии:

1. То, что показывает ваш снимок экрана, похоже, является результатом одного из двух alert операторов в ваших функциях обратного вызова, поэтому responseText свойство не задано. Но почему это не установлено, зависит от ответа, отправленного сервером, и той части, которую вы нам еще не показали. (Кстати, ваш параметр для этих функций обратного вызова скорее должен быть вызван response , чем request , потому что именно с этим вы имеете дело на данный момент, с ответом , который вы получили от сервера.)

2. Пожалуйста, покажите свой код маршрута/контроллера. Как также упоминалось выше, я бы рекомендовал изменить request на response , но также измените свой alert на console.log(response); , чтобы вы могли точно видеть, с чем имеете дело.

3. @Rwd я опубликовал маршрут и контроллер

4. Что вы пытались сделать, чтобы решить эту проблему? Является ли это проблемой PHP (когда сервер не может правильно обработать запрос) или проблемой JS (когда браузер неправильно отправляет запрос или неправильно обрабатывает ответ)?

5. Имя вашего параметра , который вы отправляете, есть item , но вы пытаетесь получить доступ $request-gt;selected_item;