我被困了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
2) edit.blade.php
答案 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了解更多信息: