Передача данных формы с помощью jQuery в Laravel в виде массива - PullRequest
1 голос
/ 03 июля 2019

У меня есть Bootstrap 4 Modal с формой в его теле. Он имеет один тип ввода текста и файл типа ввода, который также может загружать несколько файлов. Как я могу получить текст и изображения и отправить их на свой сервер с AJAX?

Моя HTML-разметка:

<div class="modal fade" id="myModal">
          <div class="modal-dialog">
            <div class="modal-content">

              <!-- Modal Header -->
              <div class="modal-header">
                <h4 class="modal-title">Update Post</h4>
                <button type="button" class="close" data-dismiss="modal">&times;</button>
              </div>

              <!-- Modal body -->
              <div class="modal-body">
                <form class="updateForm">
                    <input type="text" class="form-control textt" name="text">


                    <label class="float-left m-2" style="padding: 4px; background-color: white;cursor: pointer;font-weight: 600;border-radius: 10px; border: none; box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);">
                        ADD PICTURES 
                        <span>
                            <img src="http://www.transparentpng.com/thumb/logo-instagram/SKq9yH-black-and-white-instagram-logo-png.png" style="width: 25px; height: 25px;">
                        </span>
                        <input type="file" id="file-input" name="images[]" style="display: none;" class="inp" multiple >

                        <div id="preview"></div>

                    </label>

                    <button class="btn btn-warning btn-block updatee">UPDATE</button>

                </form>
              </div>

            </div>
          </div>
        </div>

Я пытался сохранить свои данные в объекте, подобном этому:

$('.updateForm').submit(function(e){

    e.preventDefault();

       var values = {};

    $.each($('.updateForm').serializeArray(), function(i, field) {

        values[field.name] = field.value;

    });
});

Но это только дает мне объект с текстом.

1 Ответ

1 голос
/ 03 июля 2019
var form_data = new FormData($('#ur_form')[0]);
            $.ajax({
                method: "POST",
                url: "post-url",
                data: form_data,
                cache : false,
                contentType: false,
                processData: false,
                success: function (result) {
                    //success
                }
            });

Попробуйте этот метод.Не забыли добавить поле csrf в форму

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