如何显示选择元素的旧数据

时间:2019-03-16 21:21:17

标签: laravel

我被困了2天,您知道如何在Laravel中显示select元素的旧数据吗?

<select name="sexe" id="sexe" class="form-control">
 <option value="">Choice</option>
 <option>Women</option>
 <option>Man</option>
 </select>

我尝试过但没有成功:

<select class="form-control" name="sexe">
   <option value="male" @if (old('sexe') == 'male') selected="selected" @endif>male</option>
   <option value="female" @if (old('sexe') == 'female') selected="selected" @endif>female</option>
</select> 

我的控制器

public function edit($id)
{
        //
  $candidats = Candidat::find($id);
  $permis = Permis::all();
  return view('admin.candidats.edit', compact('candidats', 'permis'));
}

public function update(Request $request, $id)
{
     $request->validate([
           'sexe' => 'required|string',
           'fk_permis' => 'required'
    ]);

      $candidats = Candidat::find($id);
      $candidats->sexe = $request->get('sexe');
      $candidats->fk_permis = $request->get('fk_permis');
      $candidats->save();
        return redirect()->route('candidats.index')
                    ->with('success', 'mise à jour effectuée');
    }

编辑: 1) index.blade.php

enter image description here

2) edit.blade.php

enter image description here

2 个答案:

答案 0 :(得分:1)

如果将旧数据存储为模型,我认为这是因为这是Laravel问题而不是javascript问题,您可以使用表单模型绑定轻松在下次访问时加载旧数据。页面。

因此,当您打开表单时,请绑定模型:

{{ Form::model($yourModel, array('route' => array('yourModel.update', $yourModel->id))) }}

然后在select方法中,laravel(集合)可以自动将旧数据作为选定值。使用Laravel帮助器可能看起来像这样:

{!! Form::select('sexe', $listOfYourNameAndIdForYourSelectItem, null, ['class'=>'form-control', 'id'=>'sexe']) !!}

如上所述,通过使用第三个参数null,Laravel将使模型的旧数据成为所选元素。

在Laravel表单包中检查docs,以获取更多信息。

答案 1 :(得分:1)

在您的更新功能中输入withInput()

return redirect()->route('candidats.index')
                    ->with('success', 'mise à jour effectuée')->withInput();

您可以选择执行以下操作:

<select class="form-control" name="sexe">
   <option value="male" @if (old('sexe') == 'male') selected="selected" @elseif($candidats->sexe == 'male') selected="selected" 
 @endif>male</option>
   <option value="female" @if (old('sexe') == 'female') selected="selected" @elseif($candidats->sexe == 'female') selected="selected" 
 @endif>female</option>
</select> 

我在这里从您的模型中加载了选定的选项

@elseif($candidats->sexe == 'male') selected="selected"

因此,如果您在sexe属性中保存了“男性”,则将选择此选项。

看看here了解更多信息: