表单选择的默认值(使用 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->value)
。
是的,这很好地清理了它。谢谢以上是关于表单选择的默认值(使用 foreach 循环)的主要内容,如果未能解决你的问题,请参考以下文章
PHP - 提交日期/时间/从foreach循环中选择输入值到$ _POST不返回任何内容
jmeter forEach循环获取response参数值进行接口请求
jmeter forEach循环获取response参数值进行接口请求