选择laravel 5.4中下拉列表的选定值

时间:2017-05-29 09:02:53

标签: php laravel laravel-5.4

我有一个名为指定的下拉列表,用户将选择其中一个,并在提交后,如果有错误,那么我想选择所选的指定。

我在laravel 5.4中使用它。

控制器

<div class="col-md-5 col-lg-5">
  <div class="mainmenu nav">
    <ul id="nav">
      <li class="menuborder"><a href="#">Ins</a>
        <ul>
          <li class='sub-sub-menu'><a href="#">Ecc</a>
            <ul>
              <li><a href="#">DB</a></li>
              <li><a href="#">Ot</a></li>
            </ul>
          </li>
          <li><a href="#">Edu</a></li>
          <li><a href="#">Emp</a></li>
          <li><a href="#">Med</a></li>
          <li><a href="#">Med</a></li>
          <li><a href="#">Pr</a></li>
          <li><a href="#">Re</a></li>
          <li><a href="#">Soc</a></li>
        </ul>
      </li>
      <li class="menuborder"><a href="#">Assoc</a>
        <ul>
          <li><a href="#">Pi</a></li>
          <li><a href="#">Co</a></li>
          <li><a href="#">Com</a></li>
          <li><a href="#">Fo</a></li>
          <li><a href="#">Mo</a></li>
          <li><a href="#">Org</a></li>
          <li><a href="#">K</a></li>
        </ul>
      </li>
      <li class="menuborder"><a href="#">Cong</a>
        <ul>
          <li><a href="#">Rel</a></li>
          <li><a href="#">Wel</a></li>
        </ul>
      </li>

      <li></li>

    </ul>
  </div>
</div>

查看文件

$info = DB::table("designation")
                    ->where('status','=',1)
                    ->pluck("name","id");

        return view('regUser.add',['check' => 'userList','designation' => $info]);

现在,如果验证器发现了一些错误,那么我想选择之前选择的错误。 我怎样才能在laravel 5.4中实现这一点。

提交表单后,它会进入 addUserInformation 函数,在那里我验证具有这段代码的用户信息

<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}">
                            <label for="designation">Designation</label>
                            <select id="designation" name="designation" class="form-control">
                                <option value="">--- Select designation ---</option>
                                @foreach ($designation as $key => $value)

                                    <option value="{{ $key }}" />{{ $value }}</option>
                                @endforeach
                            </select>
                            @if ($errors->has('designation'))
                            <span class="help-block">
                                <strong>{{ $errors->first('designation') }}</strong>
                            </span>
                            @endif  
                        </div>

2 个答案:

答案 0 :(得分:6)

Larvel在验证错误时传回输入。您可以使用old辅助函数来获取以前的表单值。一个简单的比较应该可以做到这一点。

<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}">
    <label for="designation">Designation</label>
    <select id="designation" name="designation" class="form-control">
        <option value="">--- Select designation ---</option>
        @foreach ($designation as $key => $value)
            <option value="{{ $key }}" {{ old('designation') == $key ? 'selected' : ''}}>{{ $value }}</option>
        @endforeach
    </select>
    @if ($errors->has('designation'))
        <span class="help-block">
            <strong>{{ $errors->first('designation') }}</strong>
        </span>
    @endif
</div>

答案 1 :(得分:1)

您必须使用return redirect()来维护旧输入的状态,如:

return redirect('form')->withInput();

检索旧数据

要从上一个请求中检索闪存输入,请在Request实例上使用旧方法。

$oldDesignation = Request::old('designation');

并检查它:

@foreach ($designation as $key => $value)
  $selected = '';
  @if( $value == $oldDesignation )
    $selected = 'selected="selected"';
  @endif
  <option value="{{ $key }}" {{ $selected }} />{{ $value }}</option>
@endforeach

Reference