【问题标题】:Default value on form select (with foreach loop)表单选择的默认值(使用 foreach 循环)
【发布时间】:2016-04-06 13:14:59
【问题描述】:

所以,我想实现类似<select> 的解决方案,其中默认值等于数据库中当前的值,因此是“旧值”。

1

我有这个,我循环一个foreach来填充<option>。:

<select id="size"  name="size" class="form-control">
    @foreach ($sizes as $s)
        <option value="{{ $s->value }}">{{ $s->name }}</option>
    @endforeach
</select>

现在我要使用的是 laravel 5.2 中的 edit-form,它使用数据库中选定用户的当前值填充此表单。我的文本输入字段填写正确,但此选择不正确。

2

使用 Laravel 表单我知道可以将默认值设置为 S。但我不知道如何循环这是 foreach...:

{{ Form::select('size', array('L' => 'Large', 'S' => 'Small'), 'S') }}

所以我需要找到一种方法来使用 HTML-select 标签设置默认值,同时在循环中使用来自我的控制器的值找到一种在 Laravel Forms 中循环的方法。只要它有效

【问题讨论】:

    标签: forms laravel select foreach default-value


    【解决方案1】:

    不知道这是否是你要问的,但如果你知道当前值,你可以用 if 语句检查它:

    <select id="size"  name="size" class="form-control">
        @foreach ($sizes as $s)
            @if ($s->value == $currentSize)
                <option selected value="{{ $s->value }}">{{ $s->name }}</option>
            @else
                <option value="{{ $s->value }}">{{ $s->name }}</option>
            @endif
        @endforeach
    </select>
    

    【讨论】:

    • 这增加了一些批量.. 现在可以使用,但是对于选择选项,没有类似 Input::old() 的东西吗?
    • Input::old() 返回 flash 数据,因此如果旧输入呈现给视图层,您可以使用 @if (Input::old('size') == $s-&gt;value)
    • 是的,这很好地清理了它。谢谢
    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多