表单选择的默认值(使用 foreach 循环)

Posted

技术标签:

【中文标题】表单选择的默认值(使用 foreach 循环)【英文标题】:Default value on form select (with foreach loop) 【发布时间】: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 中循环的方法。只要它有效

【问题讨论】:

【参考方案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) 是的,这很好地清理了它。谢谢

以上是关于表单选择的默认值(使用 foreach 循环)的主要内容,如果未能解决你的问题,请参考以下文章

foreach 选择未正确设置默认选项

PHP - 提交日期/时间/从foreach循环中选择输入值到$ _POST不返回任何内容

jmeter forEach循环获取response参数值进行接口请求

jmeter forEach循环获取response参数值进行接口请求

使用 AngularJS 在表单提交时将选择字段重新设置为默认值

加载时选择选项默认值不显示,选择其他选项时不显示