在laravel中显示选定下拉选项值的不同方式



我目前正在与这个网站工作,其中如果你不是来自那个国家的本地,多个输入字段将被禁用。所以,我要做的是从数据库表中查询的下拉菜单中显示选中的选项。我将提供它的代码和一些图片,以便您更好地理解它。

这里是控制器:

public function get_citizenship()
{
$citizenships = CitizenshipModel::orderBy('citizens')->get();
$opt="<option selected value''>Select Citizenship</option>";
foreach($citizenships as $citizenship)
{
if($citizenship -> id > 0)
$opt.="<option value={$citizenship->id}>{$citizenship->citizens}</option>";
}
return $opt;
}

public function citizenship(){
$data = UserModel::where('seq_id','=',Session::get('loginId'))->first();
$data['displayCitizenship']=$this->get_citizenship();
$data['displayProvince']=$this->get_province();
$data['displayMunicipality']=$this->get_municipality();
return view ("countries", $data);
}

这里是刀片文件。我有两种类型的选择。一个是我在本地编码的值,另一个是我从数据库表中查询的值。

<div class="col-sm-12 col-lg-4">
<div class="form-group row">
<label for="step1_gender" class="col-sm-3 text-right control-label col-form-label">Gender</label>
<div class="col-sm-9">
<select class="form-control" type="date" id='step1_gender' >
<option>Select Gender</option>
<option value="male" >Male</option>
<option value="female" >Female</option>
</select>
</div>
</div>
</div>

<div class="col-sm-12 col-lg-4">
<div class="form-group row">
<label for="step1_citizenship" class="col-sm-3 text-right control-label col-form-label">Citizenship</label>
<div class="col-sm-9">
<select class="form-control" type="text" required="" placeholder="Last Name" id='step1_citizenship'  >
{!! $displayCitizenship !!}
</select>
</div>
</div>
</div>

这是我选择并插入到我的用户信息表中的一个。但每当我刷新页面,它返回到选择公民选择。如何为每个登录用户显示所选选项?

我试着用谷歌搜索youtube视频,但我找不到最近的答案。

如果希望根据当前用户的数据选择公民身份选项(假设$this->get_citizenship()从当前用户检索到正确的数据),可以简单地为所选选项添加一个转弯条件。

$current_citizen = $this->get_citizenship();
foreach($citizenships as $citizenship)
{
if($citizenship -> id > 0) {
$selected = $citizenship->citizens == $current_citizen ? 'selected' : '';
$opt.="<option value={$citizenship->id} ${selected}>{$citizenship->citizens}</option>";
}
}

相关内容

最新更新