Laravel по-русски

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

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

#1 07.06.2017 22:31:57

Form Request валидация: при редиректе исчезают динамические поля

DISCLAIMER: я новичек!) не обижайте!:)

Итак, у меня форма, + возможность добавления в нее новых полей через кнопку "Добавить" и настроенная через Form Request валидация.

При добавлении в форму пользователем дополнительного поля (в начальной версии поле DOC number 1, тут пользователь нажал на "+Add doc nubmer"-кнопку) и отправки двух уже существующих в ДБ значений:

A BBcode
http://joxi.ru/4Ak3z67IyGeLMA

После нажатия на Submit происходит валидация, редирект обратно на страницу форму, показывается ошибка "Doc nubmer is already in DB", но выводится, естественно, только 1 поле "Doc number" - как в форме стоит по умолчанию:

B BBcode
http://joxi.ru/KAgKYVxu4Jk0eA

Вопрос: как сделать, чтобы и второе (добавленное пользователем) поле сохранялось при валидационном редиректе?

Выдержки из кода:
ФОРМА:

<form>
  <div class='inputs'>    
    <label>Doc number: </label>
    <input type="text" name="doc_fullnumber[1]" value="{{old('doc_fullnumber.1')}}">
  </div>
  @if ($errors->has('doc_fullnumber'))

     <p class="inline">
	{{ $errors->first('doc_fullnumber') }}
    </p>
  @endif<br><br>	
  <button id='add_item'>Add doc number</button>
  <input type="submit" value="Submit">
</form>

Добавление поля через jquery:

$(document).ready(function(){
    $('#add_item').on('click', function (event) {
        event.preventDefault();
        var i = 2;
        $new_docnumber = $(         
            '<br><br>'+
            '<label>Номер док-та: </label>'+ 
            '<input type="text" name="doc_fullnumber['+i+']" placeholder="Номер док-та" value="{{old('doc_fullnumber.[i]')}}">');
        $('.inputs').append($new_passenger);
    })
})

Выдержки из файла app/http/Requests/tours2_create_tableRequest.php (валидация работает отлично):

public function rules()
{
    return [

        'doc_fullnumber' => 'unique:tourists'

    ];
}

public function messages()
{
    return ['doc_fullnumber.unique' => 'Doc number is already in DB!'];
}

Изменено Serge83 (07.06.2017 22:32:36)

Не в сети

#2 08.06.2017 11:54:31

Re: Form Request валидация: при редиректе исчезают динамические поля

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

Изменено SlowDream (08.06.2017 11:54:52)

Не в сети

#3 09.06.2017 15:00:14

Re: Form Request валидация: при редиректе исчезают динамические поля

SlowDream пишет:

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

Спасибо, видимо буду делать через ajax)

Не в сети

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