Получение «старого» значения выбранного входного слова - PullRequest
0 голосов
/ 14 ноября 2018

Я работаю над подтверждением моей регистрационной формы.

Если вход является обычным входом, я могу заполнить предыдущее значение, если оно терпит неудачу, например

<input type="tel" name="phone" value="{{old('phone')}}">

Как заполнить значение в опции выбора?

<div class="input--select">
                        <label>Age Range <span>*</span></label>
                        <select name="age_range" class="age-range" value="{{old('age_range')}}" required>
                          <option selected disabled>Select your age range</option>
                          <option value="18-25">18-25</option>
                          <option value="26-35">26-35</option>
                          <option value="36-45">36-45</option>
                          <option value="46-55">46-55</option>
                          <option value="56-65">56-65</option>
                          <option value="66-75">66-75</option>
                          <option value="75+">75+</option>
                        </select>
                        @if ($errors->has('age_range')) <span class="error-message">Age range option is required.</span> @endif
                      </div>

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018
{!! Form::select('name', $varableyouwanttodisplay, old('name'), 
      ['id'=>'id', 'class' => 'form-control select2', 'data- 
      placeholder' => 'select','required', 'style' => 'width:100%']) !!}

Попробуйте, как выше код.

0 голосов
/ 14 ноября 2018

Я предлагаю поместить все ваши возрасты в массив и передать этот массив для просмотра:

$ages = ['18-25','25-50','50-75','75+']; // More dynamic and you can extend in anytime

Теперь изменения в html:

                <div class="input--select">
                    <label>Age Range <span>*</span></label>
                    <select name="age_range" class="age-range" value="{{old('age_range')}}" required>

                        // 1. first change which is creating your problem
                        <option {{ old('age_range') ? "" : "selected" }} disabled>Select your age range</option>

                       // 2. This is just optimization for short code

                        @foreach($ages as $age)
                          <option {{old('age_range') ==$age" ? $selected : ""}} value="{{$age}}">{{$age}}</option>
                       @endforeach
                    </select>


                    @if ($errors->has('age_range')) <span class="error-message">Age range option is required.</span> @endif
                  </div>

Итак, в пункте 1 вы всегда применяетеselected с первым параметром.

Предположим, что ваше старое значение было 46-55

ваш HTML выглядит так:

<select name="age_range" class="age-range" value="{{old('age_range')}}" required>
                      <option selected disabled>Select your age range</option>
                      <option value="18-25">18-25</option>
                      <option value="26-35">26-35</option>
                      <option value="36-45">36-45</option>
                      <option selected value="46-55">46-55</option>
                      <option value="56-65">56-65</option>
                      <option value="66-75">66-75</option>
                      <option value="75+">75+</option>
                    </select>

, если вы посмотрите выше HTMLЕсть 2 выбранных варианта.Html всегда выбирает первое, именно это создает проблему.

Пункт 1. проверит, доступно ли старое значение, не применяет selected к первому параметру-заполнителю.

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