2016-03-30 20 views
2

merhaba adamlar ..Kullanım Girdi :: çoklu eski ben burada biraz problem var

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

seçmek seçilen id containt edecektir. böylece seçimi "inselect" sonra böyle containt edilecektir:

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

ve ben ('inselect') girişinde bu "2,4,5" :: eski dönmek istiyorum. nasıl alınır?

+0

'giriş :: eski ('inselect') '2,4,5'' = olmalıdır. Tek yapmanız gereken '' – Chris

+0

da laravel 5 kullanıyorsanız {{old ('inselect')}} 'daha önce yayınlanan değerler için – Chris

+0

sanırım sorumu yanlış anladığımı düşünüyorum. Sorum" 2,4,5 "demek demek, bu değer diziye dönüştürüp seçime giriyor. –

cevap

1

Bu kodu deneyin.

<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

Evet, bu aradığım şey. teşekkürler efendim. iyi iş, iyi cevap. –

0

veya daha kısa:

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

Lütfen cevabınızı bir açıklama eklemek için düzenleyin. Yalnızca kod yanıtları gelecekteki SO okuyucularını eğitmek için çok az şey yapar. Cevabınız düşük kaliteli olduğu için denetleme kuyruğunda. – mickmackusa

İlgili konular