Извлеките данные формы начальной загрузки 5, размещенные внутри модального с помощью PHP Laravel

#php #html #laravel #bootstrap-modal #bootstrap-5

Вопрос:

Я пытаюсь получить данные формы с помощью PHP Laravel, включенного в модал начальной загрузки 5. Однако при отправке я получаю нулевые ограничения SQL, потому что сервер, похоже, не получает данные, введенные в форме, завернутой в модал. Форма хорошо работает, если она расположена вне модального. Ниже приведен модальный код:

 <div class="modal fade" id="donation" tabindex="-1" aria-labelledby="exampleModalLabel">
    <div class="modal-dialog modal-dialog-centered">
          <div class="modal-content">
               <div class="modal-header">
                   <h5 class="modal-title" id="exampleModalLabel">Form</h5>
                   <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
                </div>
                <div class="modal-body" style="text-align: justify">
                  <form action="/path" enctype="multipart/form-data" method="POST">
                       @csrf

                      <input class="form-control input--style-4 mb-3 rounded-0" type="number" placeholder="Amount"
                            name="amount" aria-label="default input example" id="amount" min="0">
                      <input class="form-control input--style-4 mb-3 rounded-0" type="text" placeholder="Name"
                            name="text" aria-label="default input example" id="donater">
                      <input class="form-control input--style-4 mb-3 rounded-0" type="text" data-field="date"
                            placeholder="Date" name="date">

                      <div class="d-flex justify-content-between">
                          <button type="button" class="btn btn-outline-danger" data-bs-dismiss="modal">Cancel</button>
                          <button type="submit" class="btn btn-danger" name="action" value="donation">Submit</button>
                        </div>
                    </form>
                </div>
            </div>


        </div>

    </div>
 

Как я могу решить эту проблему?

Ответ №1:

Вместо этого вы отправляете данные по правильному маршруту

 <form action="/path" ..>
 

вы должны использовать вместо action="{{route('/post-route')}}" этого, иначе вы можете отправлять данные с помощью ajax с помощью jquery

 $("#send-btn").click(function (e) {
    e.preventDefault();
    let name = $('#name').val();
    let data = $("#form-id").serializeArray();

    $.ajax({
        type: "post",
        url: "{{route('post-route')}}", //post route of your controller 
        data: data,
        success: function (response) {
               if(response.success==true){
                     alert("response was successfully"); 
               }
        }
    });
});