#javascript #php #jquery #laravel
#javascript #php #jquery #laravel
Вопрос:
У меня есть несколько входных данных, и я могу добавить больше, нажав на кнопку ( ), чтобы клонировать div в любом месте.
Мне это нужно для того, чтобы при сохранении формы, когда данные пусты, перенаправлять обратно со всеми разделами и входными данными. например: добавьте пять входных данных, и при нажатии кнопки отправить и перенаправить мне нужно показать эти входные данные (пять входных данных).
Это мой пример кода:
<form class="m-form m-form--fit m-form--label-align-right" id="m_form_1" method="post">
<div class="m-portlet__body">
@if(is_array(old('name')) amp;amp; count(old('name')) > 0)
<div id="countriesContainer">
@foreach(old('name') as $key => $item)
<div class="form-group m-form__group row countries">
<label class="col-form-label col-lg-2">{{ trans('general.language') }}</label>
<div class="col-2">
<select class="form-control m-bootstrap-select m_selectpicker" data-live-search="true" name="language[]">
<option value="">{{ trans('general.select_item') }}</option>
@foreach($language as $row)
<option value="{{ $row->locale }}" {{ old('language')[$item] == $row->locale ? 'selected' : '' }}>{{ $row->name }}</option>
@endforeach
</select>
</div>
<div class="col-lg-6">
<input type='text' class="form-control m-input lang" name="name" value="{{ old('name')[$item] }}" placeholder="{{ trans('countries.name') }}"/>
</div>
<div class="col-2">
<a href="javascript:;" class="btn btn-brand m-btn m-btn--custom add">
<i class="fa fa-plus"></i>
</a>
<a href="javascript:;" class="btn btn-danger m-btn m-btn--custom remove">
<i class="fa fa-minus"></i>
</a>
</div>
</div>
@endforeach
</div>
@else
<div id="countriesContainer">
<div class="form-group m-form__group row countries">
<label class="col-form-label col-lg-2">{{ trans('general.language') }}</label>
<div class="col-2">
<select class="form-control m-bootstrap-select m_selectpicker" data-live-search="true" name="language">
<option value="">{{ trans('general.select_item') }}</option>
@foreach($language as $row)
<option value="{{ $row->locale }}" {{ old('language') == $row->locale ? 'selected' : '' }}>{{ $row->name }}</option>
@endforeach
</select>
</div>
<div class="col-lg-6">
<input type='text' class="form-control m-input lang" name="name" placeholder="{{ trans('countries.name') }}"/>
</div>
<div class="col-2">
<a href="javascript:;" class="btn btn-brand m-btn m-btn--custom add">
<i class="fa fa-plus"></i>
</a>
<a href="javascript:;" class="btn btn-danger m-btn m-btn--custom remove">
<i class="fa fa-minus"></i>
</a>
</div>
</div>
</div>
@endif
</div>
</form>
и вот мой код контроллера:
$language = $request->get('language');
$name = $request->get('name');
$status = (int)$request->get('status');
$validator = Validator::make($request->all(), [
"name.*" => "required",
]);
Комментарии:
1. итак, вы хотите использовать {{ old(») }} но для нескольких входных данных?
2. я использую старый, но не работающий при возврате перенаправление ввода всего div не показывает только один ввод.
3. я внес правку в ваш исходный пост и понимаю, что в настоящее время я работаю над той же проблемой прямо сейчас — надеюсь, либо кто-нибудь сможет ответить нам первым, либо я найду решение
Ответ №1:
<input name="name" ...
должно быть <input name="name[]" ...
если существует несколько полей ввода с одинаковым именем, это должен быть массив.
для получения старого значения вам нужен индекс цикла. не тот $item
итак, это должно быть
<input name="name[]" value="{{ old('name')[$loop->index] }}" ...
Комментарии:
1. Я не делаю этого, но когда перенаправление ввода не возвращает, возвращает только один ввод. мне нужно, когда я добавляю 3 или 5 или .. etc и нажимаю отправить, возвращать тот же ввод с проверками сообщения об ошибке.