Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 15.07.2016 13:34:22

BMTH_1

При редактировании ресурса, отправляется пустой массив

Привет.
При добавлении нового ресурса, все идеально добавляется в базу и все картинки загружаются, но при редактировании, на сервер отправляется пустой массив, и выходит ошибка что обязательные поля не заполнены.

$('#form').on('submit', function(e) {
        e.preventDefault();
        var form = $('#form');
        var formData = new FormData($(this)[0]);
        $.ajax({
            url     : form.attr("action"),
            type    : form.attr("method"),
            data    : formData,
            dataType: 'json',
            cache: false,
            contentType: false,
            processData: false,
            headers: {
                'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
            },
            error :function( errors ) {
                output = "<div class='alert alert-danger'><h4><i class='icon fa fa-ban'></i> Возникла ошибка!</h4><ul>";
                $.each(errors.responseJSON, function(index, error){
                    output += "<li>" + error + "</li>";
                });
                output += "</ul></div>";
                $('#append').html(output);
            },
            success: function(data){
                output = "<div class='alert alert-success'><h4><i class='icon fa fa-check'></i> Готово!</h4><ul>";
                output +=  data.success;
                output += "</ul></div>";
                $('#append').html(output);
                setTimeout(function(){
                    window.location.replace('{{ url('post') }}')}, 3500
                );
            }
        })
    })

При редактировании используется этот же код, только метом на "patch" меняю.
Почему так?

#2 15.07.2016 19:12:51

Re: При редактировании ресурса, отправляется пустой массив

То есть formData пустой.
попробуй взять serializeObject у меня
http://github.com/h-zone/jquery-tools (можно через bower)
у меня там по сериализации объекта 1 функция и 1 jquery-метод (работают по разному, задачи выполняют по разному (метод, если память не изменяет, может сериализовать name="var[var1][var2]" аттрибут тега input)

Не в сети

#3 15.07.2016 19:14:42

Re: При редактировании ресурса, отправляется пустой массив

примет простой
либо
var formData = $('FORM[name="myform"]').serializeObject()
либо
var formData = serializeObject($('FORM[name="myform"]').)

методы взяты в инете и/или немного модифицированы

Изменено hzone (15.07.2016 19:14:52)

Не в сети

#4 15.07.2016 19:24:43

BMTH_1

Re: При редактировании ресурса, отправляется пустой массив

hzone пишет:

примет простой
либо
var formData = $('FORM[name="myform"]').serializeObject()
либо
var formData = serializeObject($('FORM[name="myform"]').)

методы взяты в инете и/или немного модифицированы

У меня до этого было с сериализацией, и все отлично работало. Но вот теперь добавил загрузку изображений и пришлось отказатся от сериализации т.к. она не отправляет изображения. Попробую с вашим скриптом, мб получится

#5 15.07.2016 19:34:48

Re: При редактировании ресурса, отправляется пустой массив

ясно. form multipart ?

Не в сети

#6 15.07.2016 19:37:35

Re: При редактировании ресурса, отправляется пустой массив

через аякс файл так просто не отдашь, и тем более не увидишь ничего со стороны сервера.
в своё время я написал интерфейс для загрузки картинок.
https://github.com/h-zone/lib-immann
интерфейс после обработки изображения пакует его в base64 и текстом отдёт

Не в сети

#7 15.07.2016 19:38:51

Re: При редактировании ресурса, отправляется пустой массив

демку можно глянуть тут
http://showcase.h-zone.ru/lib-immann

Не в сети

Подвал раздела