#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;