2016-03-30 49 views
2

你好,大家好我这里有一些问题..使用输入::因为使用多个选择插件,输入名称=“inselect”我老去多选择

// 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> 

将containt选择的ID。所以以后选择 “inselect” 将containt这样的:

<input type="hidden" name="inselect" value="2,4,5"> // string value 

,我想这回 “2,4,5” 与输入::旧的( 'inselect')。如何得到它?

+0

'输入::旧( 'inselect')'应该='2,4,5'。如果你使用的是laravel 5,你可以使用''input type =“hidden”name =“inselect”value =“{{Input :: old('inselect')}}>>' – Chris

+0

' {{old('inselect')}}'对于以前发布的值 – Chris

+0

我想你误解了我的问题..我的问题意味着“2,4,5”该值将转换为数组并放入select中。 –

回答

1

试试看看这个代码。

<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> 
+0

是啊这是我寻找的。谢谢先生。很好的工作,很好的答案。 –

0

或更短:

{{in_array($val->id, old("sel") ?: []) ? "selected": ""}} 
+1

请编辑您的答案以包含一些解释。仅有代码的答案对未来SO读者的教育很少。您的回答是在低质量的审核队列中。 – mickmackusa