在表格编辑

时间:2016-11-25 11:35:11

标签: php angularjs laravel-5.3

我目前正在编辑页面。我的编辑完美地显示了旧的(产品名称)输入值,如下所示:

<div class="form-group">
    <label for="product-input">@lang('product.name')</label>
    <input id="product-input" type="text" name="name" class="form-control" value="{{ isset($product) ? $product->name : '' }}">
</div>

我的问题是,我怎样才能选择这个?如何在编辑时获取旧的选定选项值?

我的代码:

<div class="form-group">
    <label>@lang('product.group')</label>
    <select name="product_group_id" id="product_group_id" class="form-control" ng-model="productGroup" ng-change="changedType(val)">
            <option style="display: none" value="">@lang('product.choose_group')</option>
        @foreach ($product_groups as $product_group)
            <option value="{{$product_group->id}}">{{$product_group->name}}</option>
        @endforeach
    </select>
</div>

解决方案

在选项元素中添加了ng-selected,如下所示:

@foreach ($product_groups as $product_group)
    <option value="{{$product_group->id}}" ng-selected="{{ isset($product->product_group_id) ? $product->product_group_id == $product_group->id : ''}}">{{$product_group->name}}</option>
@endforeach

2 个答案:

答案 0 :(得分:0)

您需要检查旧值等于选项值,然后使用已选择属性:

    @foreach ($product_groups as $product_group)
        <option @if(old('product_group_id') == $product_group->id) selected @endif value="{{$product_group->id}}">{{$product_group->name}}</option>
    @endforeach

答案 1 :(得分:0)

考虑到第一次使用默认值时更好:

<option 
    value="{{$product_group->id}}" 
    {{ old('product_group_id', $product->id) != $product_group->id?: 'selected' }}>
        {{$product_group->name}}
</option>