загрузка URL до bootstrap модально с использованием ajax в Laravel не работает - PullRequest
0 голосов
/ 03 апреля 2020

In Laravel - имя контроллера ProductController , метод showproductinmodal . Я попробовал это, javascript код, он работал.

Веб-маршрут:

Route::get('admin/product/show/{id}', 'Admin\ProductController@showproductinmodal');

JS:

<script>
            $('.showinfo').click(function(){

            var productid = $(this).data('id');

            // AJAX request
            $(".modal-body").load("{{URL::to('admin/product/show/')}}"+"/"+productid);


            });            
</script>

URL загружен и возвращает текст в модальное состояние. Но этот Javascript код не работает, я хочу использовать следующий код:

$(document).ready(function(){

 $('.showinfo').click(function(){

   var productid = $(this).data('id');

   // AJAX request
   $.ajax({
    url: '{{route('admin.showproductinmodal')}}',
    type: 'post',
    data: {id: productid},
    success: function(response){ 
      // Add response in Modal body
      $('.modal-body').html(response);

    }
  });
 });
});

Код моего веб-маршрута

Route::post('admin/product/show/', 'Admin\ProductController@showproductinmodal')->name('admin.showproductinmodal');

Код моего контроллера:

public function showproductinmodal(Request $id)
    {
        return "Your test id:" . $id;
    }

Мой тег

<a  href="#" data-toggle="modal" data-target="#modaldemo3"  data-id="15" class="showinfo">Any ID test</a>

Модал работает нормально, выскакивает, когда я использую первый javascript код, все работает нормально, загрузка данных, но мне необходим второй javascript код. Я вставил предупреждение также в запрос $. ajax, но он не работал.

1 Ответ

0 голосов
/ 03 апреля 2020

Возможно, вам не хватает токена crsf в вашем случае:

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

Установите токен csrf на ajax один раз, затем наберите N номер ajax:

$(document).ready(function () {
    $('.showinfo').click(function () {
        var productid = $(this).data('id');
        let url = "{!! route('admin.showproductinmodal') !!}"
        // AJAX request
        $.ajax({
            url: url,
            type: 'post',
            data: { 
                id: productid 
            },
            success: function (response) {
                // Add response in Modal body
                $('.modal-body').html(response);
            }
        });
    });
});

И мне будет лучше, если вы будете использовать bootstrap событие модели и использовать базовый URL с javascript глобальной переменной.

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