在多个 select 上使用 Input::old
Use Input::old on multiple select
大家好,我这里有一些问题..
// in controller
$select = \MyTable::select('id','name')->where('myWhere',valWhere)->get();
return this->data['select'];
// in view
<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
<option value="{{ $val->id }}">{{ $val->name }}</option>
</select>
因为我使用多个 select 插件,输入名称="inselect" 将包含 selected id。所以在 selection "inselect" 之后将像这样包含:
<input type="hidden" name="inselect" value="2,4,5"> // string value
我想要 return 这个带有 Input::old('inselect') 的“2,4,5”。如何获得?
试试这个代码。
<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
<option value="{{ $val->id }}" @if (in_array($val->id, Input::old('sel'))) selected @endif >{{ $val->name }}</option>
</select>
或更短:
{{in_array($val->id, old("sel") ?: []) ? "selected": ""}}
大家好,我这里有一些问题..
// in controller
$select = \MyTable::select('id','name')->where('myWhere',valWhere)->get();
return this->data['select'];
// in view
<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
<option value="{{ $val->id }}">{{ $val->name }}</option>
</select>
因为我使用多个 select 插件,输入名称="inselect" 将包含 selected id。所以在 selection "inselect" 之后将像这样包含:
<input type="hidden" name="inselect" value="2,4,5"> // string value
我想要 return 这个带有 Input::old('inselect') 的“2,4,5”。如何获得?
试试这个代码。
<input type="hidden" name="inselect" value="">
<select name="sel" multiple>
foreach($select as $val)
<option value="{{ $val->id }}" @if (in_array($val->id, Input::old('sel'))) selected @endif >{{ $val->name }}</option>
</select>
或更短:
{{in_array($val->id, old("sel") ?: []) ? "selected": ""}}