在选择框中从DB设置默认选项

时间:2017-03-23 09:46:56

标签: php html laravel laravel-blade

我有一个页面,用户可以编辑他们的个人资料设置。数据从数据库读取并显示为许多字段的默认值,如电子邮件,城市,称呼,名字,姓氏等... 但是对于国家领域我从DB获得列表并且总是显示第一个选项(在这种情况下是阿富汗)。如果用户"预先选择"如何将此字段设置为默认值?以前的国家?例如,如果用户之前选择并保存了德国,我希望此选项显示为默认选项,而不是阿富汗。

{!!Form::open(array('url' => 'editUserProfile/'.$user->id, 'files' => true))!!}
    <input class="form-control" type="text" name="firstName" value="{{$user->firstName}}" required>
        <select class="form-control" name="country">
            @foreach($countries as $country)
                <option>{{$country->country_name}}</option>
            @endforeach
        </select>
{!! Form::close() !!}

如何将$user->country设置为默认名称?

2 个答案:

答案 0 :(得分:1)

以下是一些代码:

<select class="form-control" name="country">
    @foreach($countries as $country)
        <option value="{{$country->country_name}}" {{ $country->country_name == $user->country? ' selected' : '' }}>{{$country->country_name}}</option>
    @endforeach
</select>

我添加了value属性,因此国家/地区名称可以传递给服务器。 并添加了三元运算符,用于检查当前$country->country_name是否等于$user->country

答案 1 :(得分:1)

这可能会有所帮助:

@foreach($countries as $country)
  <option value="{{ $country->id }}" <?php if($user->country_id == $country->id){ echo "selected"; } ?> >{{$country->country_name}}</option>
@endforeach