Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
DISCLAIMER: я новичек!) не обижайте!:)
Итак, у меня форма, + возможность добавления в нее новых полей через кнопку "Добавить" и настроенная через Form Request валидация.
При добавлении в форму пользователем дополнительного поля (в начальной версии поле DOC number 1, тут пользователь нажал на "+Add doc nubmer"-кнопку) и отправки двух уже существующих в ДБ значений:
После нажатия на Submit происходит валидация, редирект обратно на страницу форму, показывается ошибка "Doc nubmer is already in DB", но выводится, естественно, только 1 поле "Doc number" - как в форме стоит по умолчанию:
Вопрос: как сделать, чтобы и второе (добавленное пользователем) поле сохранялось при валидационном редиректе?
Выдержки из кода:
ФОРМА:
<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)
Не в сети
Почему бы не сделать отправку данных через ajax, а уже если пришла ошибка то отображать ее напротив нужного инпута.
Либо отлавливать инпуты из запроса и в шаблоне их уже отрисовывать заново, но мне такой вариант не нравится.
Изменено SlowDream (08.06.2017 11:54:52)
Не в сети
Почему бы не сделать отправку данных через ajax, а уже если пришла ошибка то отображать ее напротив нужного инпута.
Либо отлавливать инпуты из запроса и в шаблоне их уже отрисовывать заново, но мне такой вариант не нравится.
Спасибо, видимо буду делать через ajax)
Не в сети